js-apis-hashset.md 5.5 KB
Newer Older
L
linhaoran 已提交
1 2 3 4 5 6 7 8
# 非线性容器HashSet 

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

9
```ts
10
import HashSet from '@ohos.util.HashSet';
L
linhaoran 已提交
11 12
```

Z
zengyawen 已提交
13
## 系统能力
L
linhaoran 已提交
14

Z
zengyawen 已提交
15
SystemCapability.Utils.Lang
L
linhaoran 已提交
16 17 18 19 20 21 22 23

## HashSet


### 属性

| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
Z
zengyawen 已提交
24
| length | number | 是 | 否 | HashSet的元素个数。 |
L
linhaoran 已提交
25 26 27 28


### constructor

Z
zengyawen 已提交
29
constructor()
L
linhaoran 已提交
30 31 32

HashSet的构造函数。

Z
zengyawen 已提交
33 34
**示例:**

35
```ts
Z
zengyawen 已提交
36 37
let hashSet = new HashSet();
```
L
linhaoran 已提交
38 39 40 41


### isEmpty

Z
zengyawen 已提交
42
isEmpty(): boolean
L
linhaoran 已提交
43 44 45

判断该HashSet是否为空。

Z
zengyawen 已提交
46
**返回值:**
L
linhaoran 已提交
47

Z
zengyawen 已提交
48 49 50 51 52 53
| 类型 | 说明 |
| -------- | -------- |
| boolean | 为空返回true,不为空返回false。 |

**示例:**

54
```ts
Z
zengyawen 已提交
55
const hashSet = new HashSet();
56
let result = hashSet.isEmpty();
Z
zengyawen 已提交
57
```
L
linhaoran 已提交
58 59 60 61


### has

Z
zengyawen 已提交
62
has(value: T): boolean
L
linhaoran 已提交
63

W
wusongqing 已提交
64
判断此HashSet中是否含有该指定元素。
L
linhaoran 已提交
65

Z
zengyawen 已提交
66 67 68 69 70 71 72
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | T | 是 | 指定元素。 |

**返回值:**
L
linhaoran 已提交
73

Z
zengyawen 已提交
74 75 76
| 类型 | 说明 |
| -------- | -------- |
| boolean | 包含指定元素返回true,否则返回false。 |
L
linhaoran 已提交
77

Z
zengyawen 已提交
78 79
**示例:**

80
```ts
Z
zengyawen 已提交
81
let hashSet = new HashSet();
82
let result = hashSet.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
Z
zengyawen 已提交
83
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
84
let result1 = hashSet.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
Z
zengyawen 已提交
85
```
L
linhaoran 已提交
86 87 88 89


### add

Z
zengyawen 已提交
90
add(value: T): boolean
L
linhaoran 已提交
91 92 93

向HashSet中添加数据。

Z
zengyawen 已提交
94 95 96 97 98 99 100
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | T | 是 | 添加成员数据。 |

**返回值:**
L
linhaoran 已提交
101

Z
zengyawen 已提交
102 103 104
| 类型 | 说明 |
| -------- | -------- |
| boolean | 成功增加元素返回true,否则返回false。 |
L
linhaoran 已提交
105

Z
zengyawen 已提交
106 107
**示例:**

108
```ts
Z
zengyawen 已提交
109
let hashSet = new HashSet();
110
let result = hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
Z
zengyawen 已提交
111
```
L
linhaoran 已提交
112 113 114 115


### remove

Z
zengyawen 已提交
116
remove(value: T): boolean
L
linhaoran 已提交
117 118 119

删除指定的元素。

Z
zengyawen 已提交
120 121 122 123 124 125 126
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | T | 是 | 指定删除的元素。 |

**返回值:**
L
linhaoran 已提交
127

Z
zengyawen 已提交
128 129 130
| 类型 | 说明 |
| -------- | -------- |
| boolean | 成功删除指定元素返回true,否则返回false。 |
L
linhaoran 已提交
131

Z
zengyawen 已提交
132 133
**示例:**

134
```ts
Z
zengyawen 已提交
135 136 137
let hashSet = new HashSet();
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.add("sdfs");
138
let result = hashSet.remove("sdfs");
Z
zengyawen 已提交
139
```
L
linhaoran 已提交
140 141 142 143


### clear

Z
zengyawen 已提交
144
clear(): void
L
linhaoran 已提交
145 146 147

清除HashSet中的所有元素,并把length置为0。

Z
zengyawen 已提交
148 149
**示例:**

150
```ts
Z
zengyawen 已提交
151 152 153 154 155
let hashSet = new HashSet();
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.add("sdfs");
hashSet.clear();
```
L
linhaoran 已提交
156 157 158 159


### values

Z
zengyawen 已提交
160
values(): IterableIterator<T>
L
linhaoran 已提交
161

W
wusongqing 已提交
162
返回包含此映射中包含的键值的新迭代器对象。
L
linhaoran 已提交
163

Z
zengyawen 已提交
164 165 166 167 168 169 170 171
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| IterableIterator<T> | 返回一个迭代器。 |

**示例:**

172
```ts
Z
zengyawen 已提交
173 174 175 176 177 178 179 180 181 182
let hashSet = new HashSet();
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.add("sdfs");
let iter = hashSet.values();
let temp = iter.next().value;
while(temp != undefined) {
  console.log(temp);
  temp = iter.next().value;
} 
```
L
linhaoran 已提交
183 184 185 186


### forEach

187
forEach(callbackfn: (value?: T, key?: T, set?: HashSet<T>) => void, thisArg?: Object): void
L
linhaoran 已提交
188 189 190

通过回调函数来遍历实例对象上的元素以及元素对应的下标。

Z
zengyawen 已提交
191
**参数:**
L
linhaoran 已提交
192

Z
zengyawen 已提交
193 194 195 196
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callbackfn | function | 是 | 回调函数。 |
| thisArg | Object | 否 | callbackfn被调用时用作this值。 |
L
linhaoran 已提交
197

Z
zengyawen 已提交
198 199 200
callbackfn的参数说明:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
201
| value | T | 否 | 当前遍历到的元素键值对的值。 |
Z
zengyawen 已提交
202
| key | T | 否 | 当前遍历到的元素键值对的值(和value相同)。 |
203
| set | HashSet<T> | 否 | 当前调用forEach方法的实例对象。 |
L
linhaoran 已提交
204

Z
zengyawen 已提交
205 206
**示例:**

207
```ts
Z
zengyawen 已提交
208 209 210 211 212 213 214
let hashSet = new HashSet();
hashSet.add("sdfs");
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.forEach((value, key) => {
  console.log(value, key);
});
```
L
linhaoran 已提交
215 216 217


### entries
Z
zengyawen 已提交
218
entries(): IterableIterator<[T, T]>
L
linhaoran 已提交
219

220
返回包含此映射中包含的键值对的新迭代器对象。
L
linhaoran 已提交
221

Z
zengyawen 已提交
222 223 224 225
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
226
| IterableIterator<[T, T]> | 返回一个迭代器。 |
Z
zengyawen 已提交
227 228 229

**示例:**

230
```ts
Z
zengyawen 已提交
231 232 233 234 235 236 237 238 239 240 241
let hashSet = new HashSet();
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.add("sdfs");
let iter = hashSet.entries();
let temp = iter.next().value;
while(temp != undefined) {
  console.log(temp[0]);
  console.log(temp[1]);
  temp = iter.next().value;
}
```
L
linhaoran 已提交
242 243 244 245


### [Symbol.iterator]

Z
zengyawen 已提交
246
[Symbol.iterator]\(): IterableIterator&lt;T&gt;
L
linhaoran 已提交
247 248 249

返回一个迭代器,迭代器的每一项都是一个 JavaScript 对象,并返回该对象。

Z
zengyawen 已提交
250 251 252 253 254 255 256 257
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| IterableIterator&lt;T&gt; | 返回一个迭代器 |

**示例:**

258
```ts
Z
zengyawen 已提交
259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275
let hashSet = new HashSet();
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.add("sdfs");

// 使用方法一:
for (let item of hashSet) { 
  console.log("value: " + item);
}

// 使用方法二:
let iter = hashSet[Symbol.iterator]();
let temp = iter.next().value;
while(temp != undefined) {
  console.log(temp);
  temp = iter.next().value;
}
```