@ohos.util.LightWeightMap (Nonlinear Container LightWeightMap)
LightWeightMap stores key-value (KV) pairs. Each key must be unique and have only one value.
LightWeightMap is based on generics and uses a lightweight structure. Its default initial capacity is 8, and it has the capacity doubled in each expansion.
The keys in such a set are searched using hash values, which are stored in an array.
Compared with HashMap, which can also store KV pairs, LightWeightMap occupies less memory.
Recommended use case: Use LightWeightMap when you need to store and access KV pairs.
This topic uses the following to identify the use of generics:
- K: Key
- V: Value
NOTE
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.
Modules to Import
import LightWeightMap from '@ohos.util.LightWeightMap';
LightWeightMap
Attributes
System capability: SystemCapability.Utils.Lang
Name | Type | Readable | Writable | Description |
---|---|---|---|---|
length | number | Yes | No | Number of elements in a lightweight map (called container later). |
constructor
constructor()
A constructor used to create a LightWeightMap instance.
System capability: SystemCapability.Utils.Lang
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200012 | The LightWeightMap's constructor cannot be directly invoked. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
isEmpty
isEmpty(): boolean
Checks whether this container is empty (contains no element).
System capability: SystemCapability.Utils.Lang
Return value
Type | Description |
---|---|
boolean | Returns true if the container is empty; returns false otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The isEmpty method cannot be bound. |
Example
const lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
let result = lightWeightMap.isEmpty();
hasAll
hasAll(map: LightWeightMap<K, V>): boolean
Checks whether this container contains all elements of the specified LightWeightMap instance.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
map | LightWeightMap<K, V> | Yes | LightWeightMap instance to be used for comparison. |
Return value
Type | Description |
---|---|
boolean | Returns true if all the elements in the specified LightWeightMap instance are contained; returns false otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The hasAll method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let map: LightWeightMap<string, number> = new LightWeightMap();
map.set("sparrow", 356);
let result = lightWeightMap.hasAll(map);
hasKey
hasKey(key: K): boolean
Checks whether this container contains the specified key.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
key | K | Yes | Target key. |
Return value
Type | Description |
---|---|
boolean | Returns true if the specified key is contained; returns false otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The hasKey method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
let result = lightWeightMap.hasKey("squirrel");
hasValue
hasValue(value: V): boolean
Checks whether this container contains the specified value.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
value | V | Yes | Target value. |
Return value
Type | Description |
---|---|
boolean | Returns true if the specified value is contained; returns false otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The hasValue method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
let result = lightWeightMap.hasValue(123);
increaseCapacityTo
increaseCapacityTo(minimumCapacity: number): void
Increases the capacity of this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
minimumCapacity | number | Yes | Minimum number of elements to accommodate in this container. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The increaseCapacityTo method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.increaseCapacityTo(10);
get
get(key: K): V
Obtains the value of the specified key in this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
key | K | Yes | Target key. |
Return value
Type | Description |
---|---|
V | Value of the key. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The get method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let result = lightWeightMap.get("sparrow");
getIndexOfKey
getIndexOfKey(key: K): number
Obtains the index of the first occurrence of an element with the specified key in this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
key | K | Yes | Key of the element. |
Return value
Type | Description |
---|---|
number | Returns the position index if obtained; returns -1 otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The getIndexOfKey method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let result = lightWeightMap.getIndexOfKey("sparrow");
getIndexOfValue
getIndexOfValue(value: V): number
Obtains the index of the first occurrence of an element with the specified value in this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
value | V | Yes | Key of the element. |
Return value
Type | Description |
---|---|
number | Returns the position index if obtained; returns -1 otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The getIndexOfValue method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let result = lightWeightMap.getIndexOfValue(123);
getKeyAt
getKeyAt(index: number): K
Obtains the key of an element at the specified position in this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
index | number | Yes | Position index of the element. |
Return value
Type | Description |
---|---|
K | Returns the key if obtained; returns undefined otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The getKeyAt method cannot be bound. |
10200001 | The value of index is out of range. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let result = lightWeightMap.getKeyAt(1);
setAll
setAll(map: LightWeightMap<K, V>): void
Adds all elements in a LightWeightMap instance to this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
map | LightWeightMap<K, V> | Yes | LightWeightMap instance whose elements are to be added to the current container. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The setAll method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let map: LightWeightMap<string, number> = new LightWeightMap();
map.setAll(lightWeightMap); // Add all elements in lightWeightMap to the map.
set
set(key: K, value: V): Object
Adds or updates an element in this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
key | K | Yes | Key of the target element. |
value | V | Yes | Value of the target element. |
Return value
Type | Description |
---|---|
Object | Container that contains the new element. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The set method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
let result = lightWeightMap.set("squirrel", 123);
remove
remove(key: K): V
Removes an element with the specified key from this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
key | K | Yes | Target key. |
Return value
Type | Description |
---|---|
V | Value of the element removed. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The remove method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
lightWeightMap.remove("sparrow");
removeAt
removeAt(index: number): boolean
Removes an element at the specified position from this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
index | number | Yes | Position index of the element. |
Return value
Type | Description |
---|---|
boolean | Returns true if the element is removed successfully; returns false otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The removeAt method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let result = lightWeightMap.removeAt(1);
setValueAt
setValueAt(index: number, newValue: V): boolean
Sets a value for an element at the specified position in this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
index | number | Yes | Position index of the target element. |
newValue | V | Yes | Value of the target element to set. |
Return value
Type | Description |
---|---|
boolean | Returns true if the value is set successfully; returns false otherwise. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The setValueAt method cannot be bound. |
10200001 | The value of index is out of range. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
lightWeightMap.setValueAt(1, 3546);
getValueAt
getValueAt(index: number): V
Obtains the value of an element at the specified position in this container.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
index | number | Yes | Position index of the element. |
Return value
Type | Description |
---|---|
V | Value obtained. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The getValueAt method cannot be bound. |
10200001 | The value of index is out of range. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let result = lightWeightMap.getValueAt(1);
clear
clear(): void
Clears this container and sets its length to 0.
System capability: SystemCapability.Utils.Lang
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The clear method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
lightWeightMap.clear();
keys
keys(): IterableIterator<K>
Obtains an iterator that contains all the keys in this container.
System capability: SystemCapability.Utils.Lang
Return value
Type | Description |
---|---|
IterableIterator<K> | Iterator obtained. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The keys method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let iter = lightWeightMap.keys();
let temp: IteratorResult<string, number> = iter.next();
while(!temp.done) {
console.log("value:" + temp.value);
temp = iter.next();
}
values
values(): IterableIterator<V>
Obtains an iterator that contains all the values in this container.
System capability: SystemCapability.Utils.Lang
Return value
Type | Description |
---|---|
IterableIterator<V> | Iterator obtained. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The values method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let iter = lightWeightMap.values();
let temp: IteratorResult<number> = iter.next();
while(!temp.done) {
console.log("value:" + temp.value);
temp = iter.next();
}
forEach
forEach(callbackFn: (value?: V, key?: K, map?: LightWeightMap<K, V>) => void, thisArg?: Object): void
Uses a callback to traverse the elements in this container and obtain their position indexes.
System capability: SystemCapability.Utils.Lang
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
callbackFn | function | Yes | Callback invoked to traverse the elements in the container. |
thisArg | Object | No | Value of this to use when callbackFn is invoked. The default value is this instance. |
callbackFn
Name | Type | Mandatory | Description |
---|---|---|---|
value | V | No | Value of the element that is currently traversed. The default value is the value of the first key-value pair. |
key | K | No | Key of the element that is currently traversed. The default value is the key of the first key-value pair. |
map | LightWeightMap<K, V> | No | Instance that calls the forEach API. The default value is this instance. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The forEach method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("sparrow", 123);
lightWeightMap.set("gull", 357);
lightWeightMap.forEach((value?: number, key?: string) => {
console.log("value:" + value, "key:" + key);
});
entries
entries(): IterableIterator<[K, V]>
Obtains an iterator that contains all the elements in this container.
System capability: SystemCapability.Utils.Lang
Return value
Type | Description |
---|---|
IterableIterator<[K, V]> | Iterator obtained. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The entries method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let iter = lightWeightMap.entries();
let temp: IteratorResult<Object[]> = iter.next();
while(!temp.done) {
console.log("key:" + temp.value[0]);
console.log("value:" + temp.value[1]);
temp = iter.next();
}
toString
toString(): String
Concatenates the elements in this container into a string and returns the string.
System capability: SystemCapability.Utils.Lang
Return value
Type | Description |
---|---|
String | String obtained. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The toString method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
let result = lightWeightMap.toString();
[Symbol.iterator]
[Symbol.iterator](): IterableIterator<[K, V]>
Obtains an iterator, each item of which is a JavaScript object.
NOTE
This API cannot be used in .ets files.
System capability: SystemCapability.Utils.Lang
Return value
Type | Description |
---|---|
IterableIterator<[K, V]> | Iterator obtained. |
Error codes
For details about the error codes, see Utils Error Codes.
ID | Error Message |
---|---|
10200011 | The Symbol.iterator method cannot be bound. |
Example
let lightWeightMap: LightWeightMap<string, number> = new LightWeightMap();
lightWeightMap.set("squirrel", 123);
lightWeightMap.set("sparrow", 356);
// Method 1:
let nums = Array.from(lightWeightMap.values());
for (let item1 of nums) {
console.log("value:" + item1);
}
let key = Array.from(lightWeightMap.keys());
for (let item2 of key) {
console.log("key:" + item2);
}
// Method 2:
let iter = lightWeightMap[Symbol.iterator]();
let temp: IteratorResult<Object[]> = iter.next();
while(!temp.done) {
console.log("key:" + temp.value[0]);
console.log("value:" + temp.value[1]);
temp = iter.next();
}