UNPKG

2.56 kBMarkdownView Raw
1# 哈希集合 HashSet\<T>
2哈希集合实现了Set接口,它不允许集合中出现重复元素,底层实现为哈希表(HashTable),但是已集合元素为键,已布尔类型为值。具体详见哈希表(HashTable)
3
4## 基本操作的API及示例
5
6###通过数组构造集合 fromArray
7##### [s] HashSet fromArray(T[] array)
8``` text
9实例:
10const array = Array.from({length:10}).map((item, index) => index);
11const hashSet = HashSet.fromArray(array);
12
13```
14
15### Constructor
16##### new HashSet(number capacity = HashSet.DEFAULT_TABLE_SIZE)
17``` text
18实例:
19const hashSet = new HashSet();
20
21const array = Array(50).fill(0);
22const hashSet2 = new HashSet(array.length);
23```
24
25### 插入 add
26##### HashSet add(T value)
27``` text
28实例:
29const hashSet = new HashSet();
30hashSet.add("1");
31描述:
32对象类型通过JSON序列化为字符串
33```
34### 删除 remove
35##### HashSet remove(T value)
36``` text
37实例:
38const hashSet = new HashSet();
39hashSet.add("1");
40
41hashSet.remove("1");
42```
43
44### 是否存在 has
45##### boolean has(T value)
46``` text
47实例:
48const hashSet = new HashSet();
49hashSet.add("1");
50
51hashSet.has("1");
52```
53
54### 清空 clear
55##### void clear()
56``` text
57实例:
58const hashSet = new HashSet();
59hashSet.add("1");
60
61hashSet.clear();
62console.log(hashSet.Size);
63// 0
64```
65
66### 获取所有值 entries
67##### T[] entries()
68``` text
69实例:
70const hashSet = new HashSet();
71hashSet.add(1);
72hashSet.add(2);
73hashSet.add(3);
74hashSet.add(4);
75
76const values = hashSet.entries();
77console.log(values);
78// [1, 2, 3, 4]
79```
80
81### 差集 diff
82##### T[] diff(AbstractSet<T> set)
83``` text
84实例:
85const hashSet = new HashSet();
86hashSet.add(1);
87hashSet.add(2);
88hashSet.add(3);
89hashSet.add(4);
90
91const hashSet2 = new HashSet();
92hashSet2.add(2);
93hashSet2.add(3);
94hashSet2.add(4);
95hashSet2.add(5);
96
97const values = hashSet.diff(hashSet2);
98console.log(values);
99// [1]
100```
101
102### 并集 union
103##### T[] union(AbstractSet<T> set)
104``` text
105实例:
106const hashSet = new HashSet();
107hashSet.add(1);
108hashSet.add(2);
109hashSet.add(3);
110hashSet.add(4);
111
112const hashSet2 = new HashSet();
113hashSet2.add(2);
114hashSet2.add(3);
115hashSet2.add(4);
116hashSet2.add(5);
117
118const values = hashSet.union(hashSet2);
119console.log(values);
120// [1, 2, 3, 4, 5]
121```
122
123### 交集 intersect
124##### T[] intersect(AbstractSet<T> set)
125``` text
126实例:
127const hashSet = new HashSet();
128hashSet.add(1);
129hashSet.add(2);
130hashSet.add(3);
131hashSet.add(4);
132
133const hashSet2 = new HashSet();
134hashSet2.add(2);
135hashSet2.add(3);
136hashSet2.add(4);
137hashSet2.add(5);
138
139const values = hashSet.intersect(hashSet2);
140console.log(values);
141// [2, 3, 4]
142```
\No newline at end of file