鸿蒙OS LightweightMap
LightweightMap
java.lang.Object
|---ohos.utils.LightweightMap<K,V&
public final class LightweightMap<K,V>
extends Object
implements Map<K,V>
提供一个实现 Map 接口的容器。
LightweightMap 容器使用的内存比 HashMap 容器少,但在达到较大尺寸时可能会表现出较差的性能。
建议您在需要较少内存时使用此容器。
注意:只有从 LightweightMap 容器中读取数据时,线程才是安全的。
嵌套类摘要
从接口 java.util.Map 继承的嵌套类/接口 |
---|
Map.EntryK,V |
构造函数摘要
构造函数 | 描述 |
---|---|
LightweightMap() | 构造一个默认的 LightweightMap 容器。 |
LightweightMap(int capacity) | 构造一个具有指定容量的 LightweightMap 容器。 |
LightweightMap(int capacity, boolean useIdentityHash) | 构造一个指定容量的 LightweightMap 容器,并指定是否使用系统哈希方法。 |
LightweightMap(LightweightMap<? extends K,? extends V> srcLightweightMap) | 使用现有 LightweightMap 容器构造一个新的 LightweightMap 容器。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | clear() | 删除 LightweightMap 容器中的所有键值对映射。 |
boolean | containsAll(Collection<?> collection) | 检查 LightweightMap 容器是否具有指定 Collection 对象中的所有对象。 |
boolean | containsKey(Object key) | 检查 LightweightMap 容器是否具有与指定键相同的键。 |
boolean | containsValue(Object value) | 检查 LightweightMap 容器是否具有与指定值相同的值。 |
void | ensureCapacity(int minimumCapacity) | 保证 LightweightMap 容器的容量大于等于指定值,并且容器扩容后拥有所有原始对象。 |
SetMap.EntryK,V | entrySet() | 获取一个 Set 对象,该对象包含 LightweightMap 容器中的所有键值对。 |
V | get(Object key) | 获取等于 LightweightMap 容器中指定键的值。 |
int | indexOfKey(Object key) | 获取与 LightweightMap 容器中指定键相等的键的索引。 |
int | indexOfValue(Object value) | 获取 LightweightMap 容器中与指定值相等的值的索引。 |
boolean | isEmpty() | 检查 LightweightMap 容器是否没有键值对。 |
K | keyAt(int index) | 获取 LightweightMap 容器中由 index 标识的位置的键。 |
SetK | keySet() | 获取包含 LightweightMap 容器的所有键的 Set 对象。 |
V | put(K key, V value) | 将键值对保存到 LightweightMap 容器。 |
void | putAll(Map<? extends K,? extends V> map) | 将指定 Map 容器的所有对象添加到 LightweightMap 容器。 |
void | putAll(LightweightMap<? extends K,? extends V> arrayMap) | 将指定 LightweightMap 容器的所有对象添加到另一个 LightweightMap 容器。 |
V | remove(Object key) | 从 LightweightMap 容器中删除与指定键相同的键值对。 |
boolean | removeAll(Collection<?> collection) | 从 LightweightMap 容器中删除与指定 Collection 具有相同对象的键值对。 |
V | removeAt(int index) | 从 LightweightMap 容器中删除由 index 标识的位置处的键值对。 |
boolean | retainAll(Collection<?> collection) | 从 LightweightMap 容器中删除指定 Collection 对象中不存在的键值对。 |
V | setValueAt(int index, V value) | 将 LightweightMap 容器中由 index 标识的值设置为指定值。 |
int | size() | 获取存储在 LightweightMap 容器中的键值对的数量。 |
String | toString() | 获取包含 LightweightMap 容器中所有键和值的字符串。 |
V | valueAt(int index) | 获取 LightweightMap 容器中由 index 标识的值。 |
CollectionV | values() | 获取包含 LightweightMap 容器的所有值的 Collection 对象。 |
从接口 java.util.Map 继承的方法 |
---|
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造函数详细信息
LightweightMap
public LightweightMap()
构造一个默认的 LightweightMap 容器。
LightweightMap
public LightweightMap(int capacity)
构造一个具有指定容量的 LightweightMap 容器。
构造的 LightweightMap 容器可以容纳的键值对的数量由指定的容量决定。
参数:
参数名称 | 参数描述 |
---|---|
capacity | 表示要构建的 LightweightMap 容器的容量。 |
LightweightMap
public LightweightMap(int capacity, boolean useIdentityHash)
构造一个指定容量的 LightweightMap 容器,并指定是否使用系统哈希方法。
参数:
参数名称 | 参数描述 |
---|---|
capacity | 表示要构建的 LightweightMap 容器的容量。 |
useIdentityHash | 指定是否使用系统哈希方法来映射键。 值 true 表示使用 System.identityHashCode 方法。 值 false 表示使用默认的 hashCode 方法。 |
LightweightMap
public LightweightMap(LightweightMap<? extends K,? extends V> srcLightweightMap)
使用现有 LightweightMap 容器构造一个新的 LightweightMap 容器。
参数:
参数名称 | 参数描述 |
---|---|
srcLightweightMap | 指示现有的 LightweightMap 容器。 |
方法详情
clear
public void clear()
删除 LightweightMap 容器中的所有键值对映射。
此方法使 LightweightMap 容器为空。
指定者:
在界面 MapK,V 中清除
containsAll
public boolean containsAll(Collection<?> collection)
检查 LightweightMap 容器是否具有指定 Collection 对象中的所有对象。
参数:
参数名称 | 参数描述 |
---|---|
collection | 表示指定的 Collection 对象。 |
返回:
如果 LightweightMap 容器具有指定 Collection 对象中的所有对象,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果集合为空,则引发此异常。 |
containsKey
public boolean containsKey(Object key)
检查 LightweightMap 容器是否具有与指定键相同的键。
指定者:
containsKey 在接口 MapK,V
参数:
参数名称 | 参数描述 |
---|---|
key | 表示指定的键。 |
返回:
如果 LightweightMap 容器具有与指定键相同的键,则返回 true; 否则返回 false。
containsValue
public boolean containsValue(Object value)
检查 LightweightMap 容器是否具有与指定值相同的值。
指定者:
接口 MapK,V 中的 containsValue
参数:
Parameter Name | Parameter Description |
---|---|
value | Indicates the specified value. |
返回:
如果 LightweightMap 容器的值与指定值相同,则返回 true; 否则返回 false。
ensureCapacity
public void ensureCapacity(int minimumCapacity)
保证 LightweightMap 容器的容量大于等于指定值,并且容器扩容后拥有所有原始对象。
参数:
参数名称 | 参数描述 |
---|---|
minimumCapacity | 指示 LightweightMap 容器允许的最小容量。 |
entrySet
public SetMap.EntryK,V entrySet()
获取一个 Set 对象,该对象包含 LightweightMap 容器中的所有键值对。
键值对以 Map.Entry 格式存储。
指定者:
接口 MapK,V 中的 entrySet
返回:
返回一个 Set 对象,该对象包含 LightweightMap 容器中的所有键值对。
get
public V get(Object key)
获取等于 LightweightMap 容器中指定键的值。
指定者:
进入接口 MapK,V
参数:
参数名称 | 参数描述 |
---|---|
key | 表示指定的键。 |
返回:
返回等于指定键的值; 如果指定的键在 LightweightMap 容器中不存在,则返回 null。
indexOfKey
public int indexOfKey(Object key)
获取与 LightweightMap 容器中指定键相等的键的索引。
参数:
参数名称 | 参数描述 |
---|---|
key | 表示指定的键。 |
返回:
以 int 格式返回请求的索引。
indexOfValue
public int indexOfValue(Object value)
获取 LightweightMap 容器中与指定值相等的值的索引。
参数:
参数名称 | 参数描述 |
---|---|
value | 表示指定的值。 |
返回:
以 int 格式返回请求的索引。
isEmpty
public boolean isEmpty()
检查 LightweightMap 容器是否没有键值对。
指定者:
接口 MapK,V 中的 isEmpty
返回:
如果 LightweightMap 容器没有键值对,则返回 true; 否则返回 false。
keyAt
public K keyAt(int index)
获取 LightweightMap 容器中由 index 标识的位置的键。
如果 index 为负数,则从相反方向定位键。
参数:
参数名称 | 参数描述 |
---|---|
index | 标识密钥的位置。 |
返回:
返回 LightweightMap 容器中由索引标识的键。
keySet
public SetK keySet()
获取包含 LightweightMap 容器的所有键的 Set 对象。
指定者:
接口 MapK,V 中的 keySet
返回:
返回包含 LightweightMap 容器中所有键的 Set 对象。
put
public V put(K key, V value)
将键值对保存到 LightweightMap 容器。
如果 LightweightMap 容器中已经存在该键值对的键,则该键的现有值将被新值覆盖。
如果 LightweightMap 容器的容量已经用完,会自动扩容。
指定者:
放入接口 MapK,V
参数:
参数名称 | 参数描述 |
---|---|
key | 表示要保存的键值对的键。 |
value | 表示要保存的键值对的值。 |
返回:
返回执行此操作之前键的现有值; 如果键不包含在 LightweightMap 容器中,则返回 null。
putAll
public void putAll(LightweightMap<? extends K,? extends V> arrayMap)
将指定 LightweightMap 容器的所有对象添加到另一个 LightweightMap 容器。
参数:
参数名称 | 参数描述 |
---|---|
arrayMap | 指示将其对象添加到另一个 LightweightMap 容器的指定 LightweightMap 容器。 |
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果 arrayMap 为空,则引发此异常。 |
putAll
public void putAll(Map<? extends K,? extends V> map)
将指定 Map 容器的所有对象添加到 LightweightMap 容器。
指定者:
putAll在接口MapK,V中
参数:
参数名称 | 参数描述 |
---|---|
map | 表示指定的 Map 容器,其对象将被添加到 LightweightMap 容器中。 |
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果 map 为 null,则引发此异常。 |
remove
public V remove(Object key)
从 LightweightMap 容器中删除与指定键相同的键值对。
指定者:
在接口 MapK,V 中移除
参数:
参数名称 | 参数描述 |
---|---|
key | 表示指定的键。 |
返回:
如果键值对被删除,则返回指定键的值; 如果键不包含在 LightweightMap 容器中,则返回 null。
removeAll
public boolean removeAll(Collection<?> collection)
从 LightweightMap 容器中删除与指定 Collection 具有相同对象的键值对。
参数:
参数名称 | 参数描述 |
---|---|
collection | 表示定义要删除的映射的指定集合。 |
返回:
如果从 LightweightMap 容器中删除任何对象,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果集合为空,则引发此异常。 |
removeAt
public V removeAt(int index)
从 LightweightMap 容器中删除由 index 标识的位置处的键值对。
如果 index 为负数,则键值对从反方向定位。
在删除过程中,系统会判断 LightweightMap 容器的容量是扩容还是缩容。 如果容器中的对象数量小于指定数量,系统会减少容器的容量。
参数:
参数名称 | 参数描述 |
---|---|
index | 标识键值对的位置。 |
返回:
返回由索引标识的键。
retainAll
public boolean retainAll(Collection<?> collection)
从 LightweightMap 容器中删除指定 Collection 对象中不存在的键值对。
参数:
参数名称 | 参数描述 |
---|---|
collection | 表示指定的 Collection 对象。 |
返回:
如果从 LightweightMap 容器中删除任何键值对,则返回 true; 否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果集合为空,则引发此异常。 |
setValueAt
public V setValueAt(int index, V value)
将 LightweightMap 容器中由 index 标识的值设置为指定值。
参数:
参数名称 | 参数描述 |
---|---|
index | 标识值的位置。 |
value | 表示要设置的值。 |
返回:
返回由索引标识的旧值。
Throws:
Throw名称 | Throw描述 |
---|---|
IndexOutOfBoundsException | 如果指定的索引超出有效范围,则引发此异常。 |
size
public int size()
获取存储在 LightweightMap 容器中的键值对的数量。
指定者:
接口 MapK,V 中的大小
返回:
返回存储在 LightweightMap 容器中的键值对的数量。
toString
public String toString()
获取包含 LightweightMap 容器中所有键和值的字符串。
示例字符串是“{1: "one", 2: "two"}"。
键和值必须支持 toString 方法。
覆盖:
类 Object 中的 toString
返回:
返回一个字符串,其中包含 LightweightMap 容器中的所有键和值。
valueAt
public V valueAt(int index)
获取 LightweightMap 容器中由 index 标识的值。
如果 index 为负数,则从反方向定位该值。
参数:
参数名称 | 参数描述 |
---|---|
index | 标识值的位置。 |
返回:
返回由索引标识的值。
values
public CollectionV values()
获取包含 LightweightMap 容器的所有值的 Collection 对象。
指定者:
接口 MapK,V 中的值
返回:
返回一个包含 LightweightMap 容器的所有值的 Collection 对象。
更多建议: