js-apis-lightweightmap.md 13.0 KB
Newer Older
L
linhaoran 已提交
1 2 3 4 5 6 7 8 9
# 非线性容器LightWeightMap  

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


## 导入模块

```
10
import LightWeightMap from '@ohos.util.LightWeightMap'  
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

## LightWeightMap


### 属性

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


### constructor

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

LightWeightMap的构造函数。

Z
zengyawen 已提交
33 34 35 36 37
**示例:**

```
let lightWeightMap = new LightWeightMap();
```
L
linhaoran 已提交
38 39 40 41


### isEmpty

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

判断该LightWeightMap是否为空。

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

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

**示例:**

```
const lightWeightMap = new LightWeightMap();
lightWeightMap.isEmpty();
```
L
linhaoran 已提交
58 59 60 61


### hasAll

Z
zengyawen 已提交
62
hasAll(map: LightWeightMap<K, V>): boolean
L
linhaoran 已提交
63 64 65

判断此LightWeightMap中是否含有该指定map中的所有元素。

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

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| map | LightWeightMap<K, V> | 是 | 比较对象。 |

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

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

Z
zengyawen 已提交
78 79 80 81 82 83 84 85 86 87
**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
let map = new LightWeightMap();
map.set("sdfs", 356);
let result = lightWeightMap.hasAll(map);
```
L
linhaoran 已提交
88 89 90 91 92 93 94 95


### hasKey

hasKey(key: K): boolean;

判断此LightWeightMap中是否含有该指定key。

Z
zengyawen 已提交
96
**参数:**
L
linhaoran 已提交
97

Z
zengyawen 已提交
98 99 100
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | K | 是 | 指定元素。 |
L
linhaoran 已提交
101

Z
zengyawen 已提交
102 103 104 105 106 107 108 109 110 111 112 113 114 115
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 包含指定元素返回true,否则返回false。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
```
L
linhaoran 已提交
116 117 118 119


### hasValue

Z
zengyawen 已提交
120
hasValue(value: V): boolean
L
linhaoran 已提交
121 122 123

判断此LightWeightMap中是否含有该指定value。

Z
zengyawen 已提交
124 125 126 127 128
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | V | 是 | 指定元素。 |
L
linhaoran 已提交
129

Z
zengyawen 已提交
130
**返回值:**
L
linhaoran 已提交
131

Z
zengyawen 已提交
132 133 134 135 136 137 138 139 140 141 142 143
| 类型 | 说明 |
| -------- | -------- |
| boolean | 包含指定元素返回true,否则返回false。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.hasValue(123);
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.hasValue(123);
```
L
linhaoran 已提交
144 145 146 147


### increaseCapacityTo

Z
zengyawen 已提交
148
increaseCapacityTo(minimumCapacity: number): void
L
linhaoran 已提交
149 150 151

将当前LightWeightMap扩容至可以容纳指定数量元素。

Z
zengyawen 已提交
152
**参数:**
L
linhaoran 已提交
153

Z
zengyawen 已提交
154 155 156
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| minimumCapacity | number | 是 | 需要容纳的数量。 |
L
linhaoran 已提交
157

Z
zengyawen 已提交
158 159 160 161 162 163
**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.increaseCapacityTo(10);
```
L
linhaoran 已提交
164 165 166 167


### get

Z
zengyawen 已提交
168
get(key: K): V
L
linhaoran 已提交
169 170 171

获取指定key所对应的value。

Z
zengyawen 已提交
172
**参数:**
L
linhaoran 已提交
173

Z
zengyawen 已提交
174 175 176
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | K | 是 | 指定key。 |
L
linhaoran 已提交
177

Z
zengyawen 已提交
178 179 180 181 182 183 184 185 186 187 188 189 190 191
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| V | 返回key映射的value值。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.get("sdfs");
```
L
linhaoran 已提交
192 193 194 195


### getIndexOfKey

Z
zengyawen 已提交
196 197 198
getIndexOfKey(key: K): number

查找指定元素第一次出现的下标值,如果没有找到该元素返回-1。
L
linhaoran 已提交
199

Z
zengyawen 已提交
200
**参数:**
L
linhaoran 已提交
201

Z
zengyawen 已提交
202 203 204
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | K | 是 | 被查找的元素。 |
L
linhaoran 已提交
205

Z
zengyawen 已提交
206
**返回值:**
L
linhaoran 已提交
207

Z
zengyawen 已提交
208 209 210 211 212 213 214 215 216 217 218 219
| 类型 | 说明 |
| -------- | -------- |
| number | 返回指定元素第一次出现时的下标值,查找失败返回-1。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.getIndexOfKey("sdfs");
```
L
linhaoran 已提交
220 221 222 223


### getIndexOfValue

Z
zengyawen 已提交
224 225 226 227 228 229 230 231 232
getIndexOfValue(value: V): number

查找指定元素第一次出现的下标值,如果没有找到该元素返回-1。

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | V | 是 | 被查找的元素。 |
L
linhaoran 已提交
233

Z
zengyawen 已提交
234
**返回值:**
L
linhaoran 已提交
235

Z
zengyawen 已提交
236 237 238
| 类型 | 说明 |
| -------- | -------- |
| number | 返回指定元素第一次出现时的下标值,查找失败返回-1。 |
L
linhaoran 已提交
239

Z
zengyawen 已提交
240
**示例:**
L
linhaoran 已提交
241

Z
zengyawen 已提交
242 243 244 245 246 247
```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.getIndexOfValue(123);
```
L
linhaoran 已提交
248 249 250 251


### getKeyAt

Z
zengyawen 已提交
252
getKeyAt(index: number): K
L
linhaoran 已提交
253 254 255

查找指定下标的元素键值对中key值,否则返回undefined。

Z
zengyawen 已提交
256 257 258 259 260 261 262
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 所查找的下标。 |

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

Z
zengyawen 已提交
264 265 266
| 类型 | 说明 |
| -------- | -------- |
| K | 返回该下标对应的元素键值对中key值。 |
L
linhaoran 已提交
267

Z
zengyawen 已提交
268 269 270 271 272 273 274 275
**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.getKeyAt(1);
```
L
linhaoran 已提交
276 277 278 279


### setAll

Z
zengyawen 已提交
280
setAll(map: LightWeightMap<K, V>): void
L
linhaoran 已提交
281

Z
zengyawen 已提交
282
将一个LightWeightMap中的所有元素组添加到另一个LightWeightMap中。
L
linhaoran 已提交
283

Z
zengyawen 已提交
284
**参数:**
L
linhaoran 已提交
285

Z
zengyawen 已提交
286 287 288 289 290 291 292 293 294 295 296 297 298
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| map | LightWeightMap<K, V> | 是 | 被添加元素的LightWeightMap。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
let map = new LightWeightMap();
lightWeightMap.setAll(map);
```
L
linhaoran 已提交
299 300 301


### set
Z
zengyawen 已提交
302
set(key: K, value: V): Object
L
linhaoran 已提交
303 304 305

向LightWeightMap中添加一组数据。

Z
zengyawen 已提交
306 307 308 309 310 311
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | K | 是 | 添加成员数据的键名。 |
| value | V | 是 | 添加成员数据的值。 |
L
linhaoran 已提交
312

Z
zengyawen 已提交
313
**返回值:**
L
linhaoran 已提交
314

Z
zengyawen 已提交
315 316
| 类型 | 说明 |
| -------- | -------- |
W
wusongqing 已提交
317
| Object | 返回添加数据后的LightWeightMap。 |
Z
zengyawen 已提交
318 319 320 321 322 323 324

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
```
L
linhaoran 已提交
325 326 327 328


### remove

Z
zengyawen 已提交
329
remove(key: K): V
L
linhaoran 已提交
330 331 332

删除指定的元素。

Z
zengyawen 已提交
333 334 335 336 337
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| key | K | 是 | 依据key指定删除的元素。 |
L
linhaoran 已提交
338

Z
zengyawen 已提交
339
**返回值:**
L
linhaoran 已提交
340

Z
zengyawen 已提交
341 342 343 344 345 346 347 348 349 350 351 352
| 类型 | 说明 |
| -------- | -------- |
| V | 返回删除元素的值。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.remove("sdfs");
```
L
linhaoran 已提交
353 354 355 356


### removeAt

Z
zengyawen 已提交
357
removeAt(index: number): boolean
L
linhaoran 已提交
358 359 360

删除指定下标的元素。

Z
zengyawen 已提交
361 362 363 364 365 366 367
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定想要删除元素下标 |

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

Z
zengyawen 已提交
369 370 371
| 类型 | 说明 |
| -------- | -------- |
| boolean | 成功删除元素返回true,否则返回false。 |
L
linhaoran 已提交
372

Z
zengyawen 已提交
373 374 375 376 377 378 379 380
**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.removeAt(1);
```
L
linhaoran 已提交
381 382 383 384


### setValueAt

Z
zengyawen 已提交
385
setValueAt(index: number, newValue: V): boolean
L
linhaoran 已提交
386 387 388

向LightWeightMap中具体位置替换键值对中的值。

Z
zengyawen 已提交
389
**参数:**
L
linhaoran 已提交
390

Z
zengyawen 已提交
391 392 393 394
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定替换数据下标。 |
| newValue | V | 是 | 替换键值对中的值。 |
L
linhaoran 已提交
395

Z
zengyawen 已提交
396 397 398 399 400 401 402 403 404 405 406 407 408 409
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| boolean | 成功替换指定位置数据返回true,否则返回false。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.setValueAt(1, 3546);
```
L
linhaoran 已提交
410 411 412 413


### getValueAt

Z
zengyawen 已提交
414
getValueAt(index: number): V
L
linhaoran 已提交
415 416 417

获取LightWeightMap中具体位置键值对中的值。

Z
zengyawen 已提交
418 419 420 421 422
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定查询数据下标 |
L
linhaoran 已提交
423

Z
zengyawen 已提交
424
**返回值:**
L
linhaoran 已提交
425

Z
zengyawen 已提交
426 427 428 429 430 431 432 433 434 435 436 437
| 类型 | 说明 |
| -------- | -------- |
| V | 返回指定位置中键值对的值。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.getValueAt(1);
```
L
linhaoran 已提交
438 439 440 441


### clear

Z
zengyawen 已提交
442
clear(): void
L
linhaoran 已提交
443 444 445

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

Z
zengyawen 已提交
446 447 448 449 450 451 452 453
**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
lightWeightMap.clear();
```
L
linhaoran 已提交
454 455 456 457


### keys

Z
zengyawen 已提交
458
keys(): IterableIterator&lt;K&gt;
L
linhaoran 已提交
459 460 461

返回包含此映射中包含的键的新迭代器对象。

Z
zengyawen 已提交
462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480
**返回值:**

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

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
let iter = lightWeightMap.keys();
let temp = iter.next().value;
while(temp != undefined) {
  console.log(temp);
  temp = iter.next().value;
}
```
L
linhaoran 已提交
481 482 483 484


### values

Z
zengyawen 已提交
485
values(): IterableIterator&lt;V&gt;
L
linhaoran 已提交
486

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

Z
zengyawen 已提交
489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507
**返回值:**

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

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
let iter = lightWeightMap.values();
let temp = iter.next().value;
while(temp != undefined) {
  console.log(temp);
  temp = iter.next().value;
} 
```
L
linhaoran 已提交
508 509 510 511


### forEach

Z
zengyawen 已提交
512
forEach(callbackfn: (value: V, key?: K, lightWeightMap?: LightWeightMap<K, V>) => void, thisArg?: Object): void
L
linhaoran 已提交
513 514 515

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

Z
zengyawen 已提交
516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539
**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callbackfn | function | 是 | 回调函数。 |
| thisArg | Object | 否 | callbackfn被调用时用作this值。 |

callbackfn的参数说明:
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| value | V | 是 | 当前遍历到的元素键值对的值。 |
| key | K | 是 | 当前遍历到的元素键值对的键。 |
| lightWeightMap | LightWeightMap<K, V> | 否 | 当前调用forEach方法的实例对象。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("sdfs", 123);
lightWeightMap.set("dfsghsf", 357);
lightWeightMap.forEach((value, key) => {
  console.log(value, key);
});
```
L
linhaoran 已提交
540 541 542 543


### entries

Z
zengyawen 已提交
544
entries(): IterableIterator<[K, V]>
L
linhaoran 已提交
545

W
wusongqing 已提交
546
返回包含此映射中包含的元素的新迭代器对象。
L
linhaoran 已提交
547

Z
zengyawen 已提交
548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| IterableIterator<[K, V]> | 返回一个迭代器。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);
let iter = lightWeightMap.entries();
let temp = iter.next().value;
while(temp != undefined) {
  console.log(temp[0]);
  console.log(temp[1]);
  temp = iter.next().value;
}
```
L
linhaoran 已提交
568 569 570 571


### [Symbol.iterator]

Z
zengyawen 已提交
572
[Symbol.iterator]\(): IterableIterator&lt;[K, V]&gt;
L
linhaoran 已提交
573 574 575

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

Z
zengyawen 已提交
576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603
**返回值:**

| 类型 | 说明 |
| -------- | -------- |
| IterableIterator<[K, V]> | 返回一个迭代器。 |

**示例:**

```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356);

// 使用方法一:
for (let item of lightWeightMap) { 
  console.log("key: " + item[0]);
  console.log("value: " + item[1]);
}

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