1e41f4b71Sopenharmony_ci# @ohos.util.HashMap (Nonlinear Container HashMap)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci**HashMap** is a map implemented based on the array, linked list, and red-black tree. It provides efficient data query, insertion, and removal. The elements in a **HashMap** instance are mappings of key-value pairs. Each key must be unique and have only one value.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci**HashMap** is faster in accessing data than **[TreeMap](js-apis-treemap.md)**, because the former accesses the keys based on the hash codes, whereas the latter stores and accesses the keys in sorted order.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci**[HashSet](js-apis-hashset.md)** is implemented based on **HashMap**. The input parameter of **HashMap** consists of **key** and **value**. In **HashSet**, only the **value** object is processed.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci**Recommended use case**: Use **HashMap** when you need to quickly access, remove, and insert key-value pairs.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ciThis topic uses the following to identify the use of generics:
12e41f4b71Sopenharmony_ci- K: Key
13e41f4b71Sopenharmony_ci- V: Value
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci> **NOTE**
16e41f4b71Sopenharmony_ci>
17e41f4b71Sopenharmony_ci> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci## Modules to Import
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci```ts
23e41f4b71Sopenharmony_ciimport { HashMap } from '@kit.ArkTS';
24e41f4b71Sopenharmony_ci```
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci## HashMap
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci### Attributes
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci| Name | Type | Readable | Writable | Description |
35e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- | -------- |
36e41f4b71Sopenharmony_ci| length | number | Yes | No | Number of elements in a hash map (called container later). |
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci### constructor
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ciconstructor()
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ciA constructor used to create a **HashMap** instance.
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci**Error codes**
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci| ID | Error Message |
54e41f4b71Sopenharmony_ci| -------- | -------- |
55e41f4b71Sopenharmony_ci| 10200012 | The HashMap's constructor cannot be directly invoked. |
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci**Example**
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci```ts
60e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
61e41f4b71Sopenharmony_ci```
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci### isEmpty
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ciisEmpty(): boolean
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ciChecks whether this container is empty (contains no element).
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci**Return value**
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci| Type | Description |
77e41f4b71Sopenharmony_ci| -------- | -------- |
78e41f4b71Sopenharmony_ci| boolean | Returns **true** if the container is empty; returns **false** otherwise. |
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci**Error codes**
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci| ID | Error Message |
85e41f4b71Sopenharmony_ci| -------- | -------- |
86e41f4b71Sopenharmony_ci| 10200011 | The isEmpty method cannot be bound. |
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci**Example**
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci```ts
91e41f4b71Sopenharmony_ciconst hashMap: HashMap<string, number> = new HashMap();
92e41f4b71Sopenharmony_cilet result = hashMap.isEmpty();
93e41f4b71Sopenharmony_ci```
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci### hasKey
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_cihasKey(key: K): boolean
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ciChecks whether this container contains the specified key.
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci**Parameters**
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
109e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
110e41f4b71Sopenharmony_ci| key | K | Yes | Target key. |
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci**Return value**
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci| Type | Description |
115e41f4b71Sopenharmony_ci| -------- | -------- |
116e41f4b71Sopenharmony_ci| boolean | Returns **true** if the specified key is contained; returns **false** otherwise. |
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci**Error codes**
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci| ID | Error Message |
123e41f4b71Sopenharmony_ci| -------- | -------- |
124e41f4b71Sopenharmony_ci| 10200011 | The hasKey method cannot be bound. |
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**Example**
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci```ts
129e41f4b71Sopenharmony_ciconst hashMap: HashMap<string, number> = new HashMap();
130e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
131e41f4b71Sopenharmony_cilet result = hashMap.hasKey("squirrel");
132e41f4b71Sopenharmony_ci```
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci### hasValue
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_cihasValue(value: V): boolean
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ciChecks whether this container contains the specified value.
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci**Parameters**
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
148e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
149e41f4b71Sopenharmony_ci| value | V | Yes | Target value. |
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci**Return value**
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci| Type | Description |
154e41f4b71Sopenharmony_ci| -------- | -------- |
155e41f4b71Sopenharmony_ci| boolean | Returns **true** if the specified value is contained; returns **false** otherwise. |
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci**Error codes**
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci| ID | Error Message |
162e41f4b71Sopenharmony_ci| -------- | -------- |
163e41f4b71Sopenharmony_ci| 10200011 | The hasValue method cannot be bound. |
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci**Example**
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci```ts
168e41f4b71Sopenharmony_ciconst hashMap: HashMap<string, number> = new HashMap();
169e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
170e41f4b71Sopenharmony_cilet result = hashMap.hasValue(123);
171e41f4b71Sopenharmony_ci```
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ci### get
175e41f4b71Sopenharmony_ci
176e41f4b71Sopenharmony_ciget(key: K): V
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ciObtains the value of the specified key in this container. If nothing is obtained, **undefined** is returned.
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci**Parameters**
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
187e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
188e41f4b71Sopenharmony_ci| key | K | Yes | Target key. |
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci**Return value**
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci| Type | Description |
193e41f4b71Sopenharmony_ci| -------- | -------- |
194e41f4b71Sopenharmony_ci| V | Value obtained. |
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci**Error codes**
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ci| ID | Error Message |
201e41f4b71Sopenharmony_ci| -------- | -------- |
202e41f4b71Sopenharmony_ci| 10200011 | The get method cannot be bound. |
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci**Example**
205e41f4b71Sopenharmony_ci
206e41f4b71Sopenharmony_ci```ts
207e41f4b71Sopenharmony_ciconst hashMap: HashMap<string, number> = new HashMap();
208e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
209e41f4b71Sopenharmony_cihashMap.set("sparrow", 356);
210e41f4b71Sopenharmony_cilet result = hashMap.get("sparrow");
211e41f4b71Sopenharmony_ci```
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci
214e41f4b71Sopenharmony_ci### setAll
215e41f4b71Sopenharmony_ci
216e41f4b71Sopenharmony_cisetAll(map: HashMap<K, V>): void
217e41f4b71Sopenharmony_ci
218e41f4b71Sopenharmony_ciAdds all elements in a **HashMap** instance to this container.
219e41f4b71Sopenharmony_ci
220e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
221e41f4b71Sopenharmony_ci
222e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
223e41f4b71Sopenharmony_ci
224e41f4b71Sopenharmony_ci**Parameters**
225e41f4b71Sopenharmony_ci
226e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
227e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
228e41f4b71Sopenharmony_ci| map | HashMap<K, V> | Yes | **HashMap** instance whose elements are to be added to the current container. |
229e41f4b71Sopenharmony_ci
230e41f4b71Sopenharmony_ci**Error codes**
231e41f4b71Sopenharmony_ci
232e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Utils Error Codes](errorcode-utils.md).
233e41f4b71Sopenharmony_ci
234e41f4b71Sopenharmony_ci| ID | Error Message |
235e41f4b71Sopenharmony_ci| -------- | -------- |
236e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
237e41f4b71Sopenharmony_ci| 10200011 | The setAll method cannot be bound. |
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci**Example**
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ci```ts
242e41f4b71Sopenharmony_ciconst hashMap: HashMap<string, number> = new HashMap();
243e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
244e41f4b71Sopenharmony_cihashMap.set("sparrow", 356);
245e41f4b71Sopenharmony_cilet newHashMap: HashMap<string, number> = new HashMap();
246e41f4b71Sopenharmony_cinewHashMap.set("newMap", 99);
247e41f4b71Sopenharmony_cihashMap.setAll(newHashMap);
248e41f4b71Sopenharmony_ci```
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci
251e41f4b71Sopenharmony_ci### set
252e41f4b71Sopenharmony_ci
253e41f4b71Sopenharmony_ciset(key: K, value: V): Object
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ciAdds or updates an element in this container.
256e41f4b71Sopenharmony_ci
257e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci**Parameters**
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
264e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
265e41f4b71Sopenharmony_ci| key | K | Yes | Key of the target element. |
266e41f4b71Sopenharmony_ci| value | V | Yes | Value of the target element. |
267e41f4b71Sopenharmony_ci
268e41f4b71Sopenharmony_ci**Return value**
269e41f4b71Sopenharmony_ci
270e41f4b71Sopenharmony_ci| Type | Description |
271e41f4b71Sopenharmony_ci| -------- | -------- |
272e41f4b71Sopenharmony_ci| Object | Container that contains the new element. |
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci**Error codes**
275e41f4b71Sopenharmony_ci
276e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Utils Error Codes](errorcode-utils.md).
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ci| ID | Error Message |
279e41f4b71Sopenharmony_ci| -------- | -------- |
280e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. |
281e41f4b71Sopenharmony_ci| 10200011 | The set method cannot be bound. |
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci**Example**
284e41f4b71Sopenharmony_ci
285e41f4b71Sopenharmony_ci```ts
286e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
287e41f4b71Sopenharmony_cilet result = hashMap.set("squirrel", 123);
288e41f4b71Sopenharmony_ci```
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ci
291e41f4b71Sopenharmony_ci### remove
292e41f4b71Sopenharmony_ci
293e41f4b71Sopenharmony_ciremove(key: K): V
294e41f4b71Sopenharmony_ci
295e41f4b71Sopenharmony_ciRemoves an element with the specified key from this container.
296e41f4b71Sopenharmony_ci
297e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
298e41f4b71Sopenharmony_ci
299e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci**Parameters**
302e41f4b71Sopenharmony_ci
303e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
304e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
305e41f4b71Sopenharmony_ci| key | K | Yes | Key of the target element. |
306e41f4b71Sopenharmony_ci
307e41f4b71Sopenharmony_ci**Return value**
308e41f4b71Sopenharmony_ci
309e41f4b71Sopenharmony_ci| Type | Description |
310e41f4b71Sopenharmony_ci| -------- | -------- |
311e41f4b71Sopenharmony_ci| V | Value of the element. |
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_ci**Error codes**
314e41f4b71Sopenharmony_ci
315e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ci| ID | Error Message |
318e41f4b71Sopenharmony_ci| -------- | -------- |
319e41f4b71Sopenharmony_ci| 10200011 | The remove method cannot be bound. |
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci**Example**
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ci```ts
324e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
325e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
326e41f4b71Sopenharmony_cihashMap.set("sparrow", 356);
327e41f4b71Sopenharmony_cilet result = hashMap.remove("sparrow");
328e41f4b71Sopenharmony_ci```
329e41f4b71Sopenharmony_ci
330e41f4b71Sopenharmony_ci
331e41f4b71Sopenharmony_ci### clear
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_ciclear(): void
334e41f4b71Sopenharmony_ci
335e41f4b71Sopenharmony_ciClears this container and sets its length to **0**.
336e41f4b71Sopenharmony_ci
337e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
340e41f4b71Sopenharmony_ci
341e41f4b71Sopenharmony_ci**Error codes**
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ci| ID | Error Message |
346e41f4b71Sopenharmony_ci| -------- | -------- |
347e41f4b71Sopenharmony_ci| 10200011 | The clear method cannot be bound. |
348e41f4b71Sopenharmony_ci
349e41f4b71Sopenharmony_ci**Example**
350e41f4b71Sopenharmony_ci
351e41f4b71Sopenharmony_ci```ts
352e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
353e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
354e41f4b71Sopenharmony_cihashMap.set("sparrow", 356);
355e41f4b71Sopenharmony_cihashMap.clear();
356e41f4b71Sopenharmony_ci```
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_ci
359e41f4b71Sopenharmony_ci### keys
360e41f4b71Sopenharmony_ci
361e41f4b71Sopenharmony_cikeys(): IterableIterator&lt;K&gt;
362e41f4b71Sopenharmony_ci
363e41f4b71Sopenharmony_ciObtains an iterator that contains all the keys in this container.
364e41f4b71Sopenharmony_ci
365e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
366e41f4b71Sopenharmony_ci
367e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
368e41f4b71Sopenharmony_ci
369e41f4b71Sopenharmony_ci**Return value**
370e41f4b71Sopenharmony_ci
371e41f4b71Sopenharmony_ci| Type | Description |
372e41f4b71Sopenharmony_ci| -------- | -------- |
373e41f4b71Sopenharmony_ci| IterableIterator&lt;K&gt; | Iterator obtained. |
374e41f4b71Sopenharmony_ci
375e41f4b71Sopenharmony_ci**Error codes**
376e41f4b71Sopenharmony_ci
377e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
378e41f4b71Sopenharmony_ci
379e41f4b71Sopenharmony_ci| ID | Error Message |
380e41f4b71Sopenharmony_ci| -------- | -------- |
381e41f4b71Sopenharmony_ci| 10200011 | The keys method cannot be bound. |
382e41f4b71Sopenharmony_ci
383e41f4b71Sopenharmony_ci**Example**
384e41f4b71Sopenharmony_ci
385e41f4b71Sopenharmony_ci```ts
386e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
387e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
388e41f4b71Sopenharmony_cihashMap.set("sparrow", 356);
389e41f4b71Sopenharmony_cilet iter = hashMap.keys();
390e41f4b71Sopenharmony_cilet temp: IteratorResult<string,number> = iter.next();
391e41f4b71Sopenharmony_ciwhile(!temp.done) {
392e41f4b71Sopenharmony_ci  console.log("value:" + temp.value);
393e41f4b71Sopenharmony_ci  temp = iter.next();
394e41f4b71Sopenharmony_ci}
395e41f4b71Sopenharmony_ci```
396e41f4b71Sopenharmony_ci
397e41f4b71Sopenharmony_ci
398e41f4b71Sopenharmony_ci### values
399e41f4b71Sopenharmony_ci
400e41f4b71Sopenharmony_civalues(): IterableIterator&lt;V&gt;
401e41f4b71Sopenharmony_ci
402e41f4b71Sopenharmony_ciObtains an iterator that contains all the values in this container.
403e41f4b71Sopenharmony_ci
404e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
405e41f4b71Sopenharmony_ci
406e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
407e41f4b71Sopenharmony_ci
408e41f4b71Sopenharmony_ci**Return value**
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_ci| Type | Description |
411e41f4b71Sopenharmony_ci| -------- | -------- |
412e41f4b71Sopenharmony_ci| IterableIterator&lt;V&gt; | Iterator obtained. |
413e41f4b71Sopenharmony_ci
414e41f4b71Sopenharmony_ci**Error codes**
415e41f4b71Sopenharmony_ci
416e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
417e41f4b71Sopenharmony_ci
418e41f4b71Sopenharmony_ci| ID | Error Message |
419e41f4b71Sopenharmony_ci| -------- | -------- |
420e41f4b71Sopenharmony_ci| 10200011 | The values method cannot be bound. |
421e41f4b71Sopenharmony_ci
422e41f4b71Sopenharmony_ci**Example**
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ci```ts
425e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
426e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
427e41f4b71Sopenharmony_cihashMap.set("sparrow", 356);
428e41f4b71Sopenharmony_cilet iter = hashMap.values();
429e41f4b71Sopenharmony_cilet temp: IteratorResult<number> = iter.next();
430e41f4b71Sopenharmony_ciwhile(!temp.done) {
431e41f4b71Sopenharmony_ci  console.log("value:" + temp.value);
432e41f4b71Sopenharmony_ci  temp = iter.next();
433e41f4b71Sopenharmony_ci}
434e41f4b71Sopenharmony_ci```
435e41f4b71Sopenharmony_ci
436e41f4b71Sopenharmony_ci
437e41f4b71Sopenharmony_ci### replace
438e41f4b71Sopenharmony_ci
439e41f4b71Sopenharmony_cireplace(key: K, newValue: V): boolean
440e41f4b71Sopenharmony_ci
441e41f4b71Sopenharmony_ciReplaces an element in this container.
442e41f4b71Sopenharmony_ci
443e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
444e41f4b71Sopenharmony_ci
445e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
446e41f4b71Sopenharmony_ci
447e41f4b71Sopenharmony_ci**Parameters**
448e41f4b71Sopenharmony_ci
449e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
450e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
451e41f4b71Sopenharmony_ci| key | K | Yes | Key of the target element. |
452e41f4b71Sopenharmony_ci| newValue | V | Yes | New value of the element. |
453e41f4b71Sopenharmony_ci
454e41f4b71Sopenharmony_ci**Return value**
455e41f4b71Sopenharmony_ci
456e41f4b71Sopenharmony_ci| Type | Description |
457e41f4b71Sopenharmony_ci| -------- | -------- |
458e41f4b71Sopenharmony_ci| boolean | Returns **true** if the element is replaced; returns **false** otherwise. |
459e41f4b71Sopenharmony_ci
460e41f4b71Sopenharmony_ci**Error codes**
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_ci| ID | Error Message |
465e41f4b71Sopenharmony_ci| -------- | -------- |
466e41f4b71Sopenharmony_ci| 10200011 | The replace method cannot be bound. |
467e41f4b71Sopenharmony_ci
468e41f4b71Sopenharmony_ci**Example**
469e41f4b71Sopenharmony_ci
470e41f4b71Sopenharmony_ci```ts
471e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
472e41f4b71Sopenharmony_cihashMap.set("sparrow", 123);
473e41f4b71Sopenharmony_cilet result = hashMap.replace("sparrow", 357);
474e41f4b71Sopenharmony_ci```
475e41f4b71Sopenharmony_ci
476e41f4b71Sopenharmony_ci
477e41f4b71Sopenharmony_ci### forEach
478e41f4b71Sopenharmony_ci
479e41f4b71Sopenharmony_ciforEach(callbackFn: (value?: V, key?: K, map?: HashMap<K, V>) => void, thisArg?: Object): void
480e41f4b71Sopenharmony_ci
481e41f4b71Sopenharmony_ciUses a callback to traverse the elements in this container and obtain their position indexes.
482e41f4b71Sopenharmony_ci
483e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
484e41f4b71Sopenharmony_ci
485e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_ci**Parameters**
488e41f4b71Sopenharmony_ci
489e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
490e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
491e41f4b71Sopenharmony_ci| callbackFn | function | Yes | Callback invoked to traverse the elements in the container. |
492e41f4b71Sopenharmony_ci| thisArg | Object | No | Value of **this** to use when **callbackFn** is invoked. The default value is this instance. |
493e41f4b71Sopenharmony_ci
494e41f4b71Sopenharmony_cicallbackFn
495e41f4b71Sopenharmony_ci| Name | Type | Mandatory | Description |
496e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
497e41f4b71Sopenharmony_ci| value | V | No | Value of the element that is currently traversed. The default value is the value of the first key-value pair. |
498e41f4b71Sopenharmony_ci| key | K | No | Key of the element that is currently traversed. The default value is the key of the first key-value pair. |
499e41f4b71Sopenharmony_ci| map | HashMap<K, V> | No | Instance that calls the **forEach** API. The default value is this instance. |
500e41f4b71Sopenharmony_ci
501e41f4b71Sopenharmony_ci**Error codes**
502e41f4b71Sopenharmony_ci
503e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Utils Error Codes](errorcode-utils.md).
504e41f4b71Sopenharmony_ci
505e41f4b71Sopenharmony_ci| ID | Error Message |
506e41f4b71Sopenharmony_ci| -------- | -------- |
507e41f4b71Sopenharmony_ci| 401      | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
508e41f4b71Sopenharmony_ci| 10200011 | The forEach method cannot be bound. |
509e41f4b71Sopenharmony_ci
510e41f4b71Sopenharmony_ci**Example**
511e41f4b71Sopenharmony_ci
512e41f4b71Sopenharmony_ci```ts
513e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
514e41f4b71Sopenharmony_cihashMap.set("sparrow", 123);
515e41f4b71Sopenharmony_cihashMap.set("gull", 357);
516e41f4b71Sopenharmony_cihashMap.forEach((value?: number, key?: string) => {
517e41f4b71Sopenharmony_ci  console.log("value:" + value, "key:" + key);
518e41f4b71Sopenharmony_ci});
519e41f4b71Sopenharmony_ci```
520e41f4b71Sopenharmony_ci```ts
521e41f4b71Sopenharmony_ci// You are not advised to use the set or remove APIs in forEach because they may cause unpredictable risks such as infinite loops. You can use the for loop when inserting or deleting data.
522e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
523e41f4b71Sopenharmony_cifor(let i = 0; i < 10; i++) {
524e41f4b71Sopenharmony_ci  hashMap.set("sparrow" + i, 123);
525e41f4b71Sopenharmony_ci}
526e41f4b71Sopenharmony_ci
527e41f4b71Sopenharmony_cifor(let i = 0; i < 10; i++) {
528e41f4b71Sopenharmony_ci  hashMap.remove("sparrow" + i);
529e41f4b71Sopenharmony_ci}
530e41f4b71Sopenharmony_ci```
531e41f4b71Sopenharmony_ci
532e41f4b71Sopenharmony_ci### entries
533e41f4b71Sopenharmony_ci
534e41f4b71Sopenharmony_cientries(): IterableIterator&lt;[K, V]&gt;
535e41f4b71Sopenharmony_ci
536e41f4b71Sopenharmony_ciObtains an iterator that contains all the elements in this container.
537e41f4b71Sopenharmony_ci
538e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
539e41f4b71Sopenharmony_ci
540e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
541e41f4b71Sopenharmony_ci
542e41f4b71Sopenharmony_ci**Return value**
543e41f4b71Sopenharmony_ci
544e41f4b71Sopenharmony_ci| Type | Description |
545e41f4b71Sopenharmony_ci| -------- | -------- |
546e41f4b71Sopenharmony_ci| IterableIterator&lt;[K, V]&gt; | Iterator obtained. |
547e41f4b71Sopenharmony_ci
548e41f4b71Sopenharmony_ci**Error codes**
549e41f4b71Sopenharmony_ci
550e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
551e41f4b71Sopenharmony_ci
552e41f4b71Sopenharmony_ci| ID | Error Message |
553e41f4b71Sopenharmony_ci| -------- | -------- |
554e41f4b71Sopenharmony_ci| 10200011 | The entries method cannot be bound. |
555e41f4b71Sopenharmony_ci
556e41f4b71Sopenharmony_ci**Example**
557e41f4b71Sopenharmony_ci
558e41f4b71Sopenharmony_ci```ts
559e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
560e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
561e41f4b71Sopenharmony_cihashMap.set("sparrow", 356);
562e41f4b71Sopenharmony_cilet iter = hashMap.entries();
563e41f4b71Sopenharmony_cilet temp: IteratorResult<Object[]> = iter.next();
564e41f4b71Sopenharmony_ciwhile(!temp.done) {
565e41f4b71Sopenharmony_ci  console.log("key:" + temp.value[0]);
566e41f4b71Sopenharmony_ci  console.log("value:" + temp.value[1]);
567e41f4b71Sopenharmony_ci  temp = iter.next();
568e41f4b71Sopenharmony_ci}
569e41f4b71Sopenharmony_ci```
570e41f4b71Sopenharmony_ci```ts
571e41f4b71Sopenharmony_ci// You are not advised to use the set or remove APIs in entries because they may cause unpredictable risks such as infinite loops. You can use the for loop when inserting or deleting data.
572e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
573e41f4b71Sopenharmony_cifor(let i = 0; i < 10; i++) {
574e41f4b71Sopenharmony_ci  hashMap.set("sparrow" + i, 123);
575e41f4b71Sopenharmony_ci}
576e41f4b71Sopenharmony_ci
577e41f4b71Sopenharmony_cifor(let i = 0; i < 10; i++) {
578e41f4b71Sopenharmony_ci  hashMap.remove("sparrow" + i);
579e41f4b71Sopenharmony_ci}
580e41f4b71Sopenharmony_ci```
581e41f4b71Sopenharmony_ci### [Symbol.iterator]
582e41f4b71Sopenharmony_ci
583e41f4b71Sopenharmony_ci[Symbol.iterator]\(): IterableIterator&lt;[K, V]&gt;
584e41f4b71Sopenharmony_ci
585e41f4b71Sopenharmony_ciObtains an iterator, each item of which is a JavaScript object.
586e41f4b71Sopenharmony_ci
587e41f4b71Sopenharmony_ci> **NOTE**
588e41f4b71Sopenharmony_ci>
589e41f4b71Sopenharmony_ci> This API cannot be used in .ets files.
590e41f4b71Sopenharmony_ci
591e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
592e41f4b71Sopenharmony_ci
593e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
594e41f4b71Sopenharmony_ci
595e41f4b71Sopenharmony_ci**Return value**
596e41f4b71Sopenharmony_ci
597e41f4b71Sopenharmony_ci| Type | Description |
598e41f4b71Sopenharmony_ci| -------- | -------- |
599e41f4b71Sopenharmony_ci| IterableIterator&lt;[K, V]&gt; | Iterator obtained. |
600e41f4b71Sopenharmony_ci
601e41f4b71Sopenharmony_ci**Error codes**
602e41f4b71Sopenharmony_ci
603e41f4b71Sopenharmony_ciFor details about the error codes, see [Utils Error Codes](errorcode-utils.md).
604e41f4b71Sopenharmony_ci
605e41f4b71Sopenharmony_ci| ID | Error Message |
606e41f4b71Sopenharmony_ci| -------- | -------- |
607e41f4b71Sopenharmony_ci| 10200011 | The Symbol.iterator method cannot be bound. |
608e41f4b71Sopenharmony_ci
609e41f4b71Sopenharmony_ci**Example**
610e41f4b71Sopenharmony_ci```ts
611e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
612e41f4b71Sopenharmony_cihashMap.set("squirrel", 123);
613e41f4b71Sopenharmony_cihashMap.set("sparrow", 356);
614e41f4b71Sopenharmony_ci
615e41f4b71Sopenharmony_ci// Method 1:
616e41f4b71Sopenharmony_cilet keys = Array.from(hashMap.keys());
617e41f4b71Sopenharmony_cifor (let key of keys) {
618e41f4b71Sopenharmony_ci  console.log("key:" + key);
619e41f4b71Sopenharmony_ci  console.log("value:" + hashMap.get(key));
620e41f4b71Sopenharmony_ci}
621e41f4b71Sopenharmony_ci
622e41f4b71Sopenharmony_ci// Method 2:
623e41f4b71Sopenharmony_ci let iter = hashMap[Symbol.iterator]();
624e41f4b71Sopenharmony_ci let temp: IteratorResult<Object[]> = iter.next();
625e41f4b71Sopenharmony_ci while(!temp.done) {
626e41f4b71Sopenharmony_ci   console.log("key:" + temp.value[0]);
627e41f4b71Sopenharmony_ci   console.log("value:" + temp.value[1]);
628e41f4b71Sopenharmony_ci   temp = iter.next();
629e41f4b71Sopenharmony_ci }
630e41f4b71Sopenharmony_ci```
631e41f4b71Sopenharmony_ci
632e41f4b71Sopenharmony_ci```ts
633e41f4b71Sopenharmony_ci// You are not advised to use the set or remove APIs in Symbol.iterator because they may cause unpredictable risks such as infinite loops. You can use the for loop when inserting or deleting data.
634e41f4b71Sopenharmony_cilet hashMap: HashMap<string, number> = new HashMap();
635e41f4b71Sopenharmony_cifor(let i = 0; i < 10; i++) {
636e41f4b71Sopenharmony_ci  hashMap.set("sparrow" + i, 123);
637e41f4b71Sopenharmony_ci}
638e41f4b71Sopenharmony_ci
639e41f4b71Sopenharmony_cifor(let i = 0; i < 10; i++) {
640e41f4b71Sopenharmony_ci  hashMap.remove("sparrow" + i);
641e41f4b71Sopenharmony_ci}
642e41f4b71Sopenharmony_ci```
643