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<K> 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<K> | 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<V> 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<V> | 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<[K, V]> 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<[K, V]> | 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<[K, V]> 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<[K, V]> | 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