鴻蒙OS LightweightMap

2022-08-25 10:43 更新

LightweightMap

java.lang.Object

|---ohos.utils.LightweightMap<K,V&

public final class LightweightMap<K,V>
extends Object
implements Map<K,V>

提供一個實現(xiàn) Map 接口的容器。

LightweightMap 容器使用的內存比 HashMap 容器少,但在達到較大尺寸時可能會表現(xiàn)出較差的性能。

建議您在需要較少內存時使用此容器。

注意:只有從 LightweightMap 容器中讀取數(shù)據時,線程才是安全的。

嵌套類摘要

從接口 java.util.Map 繼承的嵌套類/接口
Map.EntryK,V

構造函數(shù)摘要

構造函數(shù) 描述
LightweightMap() 構造一個默認的 LightweightMap 容器。
LightweightMap(int capacity) 構造一個具有指定容量的 LightweightMap 容器。
LightweightMap(int capacity, boolean useIdentityHash) 構造一個指定容量的 LightweightMap 容器,并指定是否使用系統(tǒng)哈希方法。
LightweightMap(LightweightMap<? extends K,? extends V> srcLightweightMap) 使用現(xiàn)有 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 容器中的鍵值對的數(shù)量。
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

構造函數(shù)詳細信息

LightweightMap

public LightweightMap()

構造一個默認的 LightweightMap 容器。

LightweightMap

public LightweightMap(int capacity)

構造一個具有指定容量的 LightweightMap 容器。

構造的 LightweightMap 容器可以容納的鍵值對的數(shù)量由指定的容量決定。

參數(shù):

參數(shù)名稱 參數(shù)描述
capacity 表示要構建的 LightweightMap 容器的容量。

LightweightMap

public LightweightMap(int capacity, boolean useIdentityHash)

構造一個指定容量的 LightweightMap 容器,并指定是否使用系統(tǒng)哈希方法。

參數(shù):

參數(shù)名稱 參數(shù)描述
capacity 表示要構建的 LightweightMap 容器的容量。
useIdentityHash 指定是否使用系統(tǒng)哈希方法來映射鍵。 值 true 表示使用 System.identityHashCode 方法。 值 false 表示使用默認的 hashCode 方法。

LightweightMap

public LightweightMap(LightweightMap<? extends K,? extends V> srcLightweightMap)

使用現(xiàn)有 LightweightMap 容器構造一個新的 LightweightMap 容器。

參數(shù):

參數(shù)名稱 參數(shù)描述
srcLightweightMap 指示現(xiàn)有的 LightweightMap 容器。

方法詳情

clear

public void clear()

刪除 LightweightMap 容器中的所有鍵值對映射。

此方法使 LightweightMap 容器為空。

指定者:

在界面 MapK,V 中清除

containsAll

public boolean containsAll(Collection<?> collection)

檢查 LightweightMap 容器是否具有指定 Collection 對象中的所有對象。

參數(shù):

參數(shù)名稱 參數(shù)描述
collection 表示指定的 Collection 對象。

返回:

如果 LightweightMap 容器具有指定 Collection 對象中的所有對象,則返回 true; 否則返回 false。

Throws:

Throw名稱 Throw描述
NullPointerException 如果集合為空,則引發(fā)此異常。

containsKey

public boolean containsKey(Object key)

檢查 LightweightMap 容器是否具有與指定鍵相同的鍵。

指定者:

containsKey 在接口 MapK,V

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示指定的鍵。

返回:

如果 LightweightMap 容器具有與指定鍵相同的鍵,則返回 true; 否則返回 false。

containsValue

public boolean containsValue(Object value)

檢查 LightweightMap 容器是否具有與指定值相同的值。

指定者:

接口 MapK,V 中的 containsValue

參數(shù):

Parameter Name Parameter Description
value Indicates the specified value.

返回:

如果 LightweightMap 容器的值與指定值相同,則返回 true; 否則返回 false。

ensureCapacity

public void ensureCapacity(int minimumCapacity)

保證 LightweightMap 容器的容量大于等于指定值,并且容器擴容后擁有所有原始對象。

參數(shù):

參數(shù)名稱 參數(shù)描述
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

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示指定的鍵。

返回:

返回等于指定鍵的值; 如果指定的鍵在 LightweightMap 容器中不存在,則返回 null。

indexOfKey

public int indexOfKey(Object key)

獲取與 LightweightMap 容器中指定鍵相等的鍵的索引。

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示指定的鍵。

返回:

以 int 格式返回請求的索引。

indexOfValue

public int indexOfValue(Object value)

獲取 LightweightMap 容器中與指定值相等的值的索引。

參數(shù):

參數(shù)名稱 參數(shù)描述
value 表示指定的值。

返回:

以 int 格式返回請求的索引。

isEmpty

public boolean isEmpty()

檢查 LightweightMap 容器是否沒有鍵值對。

指定者:

接口 MapK,V 中的 isEmpty

返回:

如果 LightweightMap 容器沒有鍵值對,則返回 true; 否則返回 false。

keyAt

public K keyAt(int index)

獲取 LightweightMap 容器中由 index 標識的位置的鍵。

如果 index 為負數(shù),則從相反方向定位鍵。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 標識密鑰的位置。

返回:

返回 LightweightMap 容器中由索引標識的鍵。

keySet

public SetK keySet()

獲取包含 LightweightMap 容器的所有鍵的 Set 對象。

指定者:

接口 MapK,V 中的 keySet

返回:

返回包含 LightweightMap 容器中所有鍵的 Set 對象。

put

public V put(K key, V value)

將鍵值對保存到 LightweightMap 容器。

如果 LightweightMap 容器中已經存在該鍵值對的鍵,則該鍵的現(xiàn)有值將被新值覆蓋。

如果 LightweightMap 容器的容量已經用完,會自動擴容。

指定者:

放入接口 MapK,V

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示要保存的鍵值對的鍵。
value 表示要保存的鍵值對的值。

返回:

返回執(zhí)行此操作之前鍵的現(xiàn)有值; 如果鍵不包含在 LightweightMap 容器中,則返回 null。

putAll

public void putAll(LightweightMap<? extends K,? extends V> arrayMap)

將指定 LightweightMap 容器的所有對象添加到另一個 LightweightMap 容器。

參數(shù):

參數(shù)名稱 參數(shù)描述
arrayMap 指示將其對象添加到另一個 LightweightMap 容器的指定 LightweightMap 容器。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 arrayMap 為空,則引發(fā)此異常。

putAll

public void putAll(Map<? extends K,? extends V> map)

將指定 Map 容器的所有對象添加到 LightweightMap 容器。

指定者:

putAll在接口MapK,V中

參數(shù):

參數(shù)名稱 參數(shù)描述
map 表示指定的 Map 容器,其對象將被添加到 LightweightMap 容器中。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 map 為 null,則引發(fā)此異常。

remove

public V remove(Object key)

從 LightweightMap 容器中刪除與指定鍵相同的鍵值對。

指定者:

在接口 MapK,V 中移除

參數(shù):

參數(shù)名稱 參數(shù)描述
key 表示指定的鍵。

返回:

如果鍵值對被刪除,則返回指定鍵的值; 如果鍵不包含在 LightweightMap 容器中,則返回 null。

removeAll

public boolean removeAll(Collection<?> collection)

從 LightweightMap 容器中刪除與指定 Collection 具有相同對象的鍵值對。

參數(shù):

參數(shù)名稱 參數(shù)描述
collection 表示定義要刪除的映射的指定集合。

返回:

如果從 LightweightMap 容器中刪除任何對象,則返回 true; 否則返回 false。

Throws:

Throw名稱 Throw描述
NullPointerException 如果集合為空,則引發(fā)此異常。

removeAt

public V removeAt(int index)

從 LightweightMap 容器中刪除由 index 標識的位置處的鍵值對。

如果 index 為負數(shù),則鍵值對從反方向定位。

在刪除過程中,系統(tǒng)會判斷 LightweightMap 容器的容量是擴容還是縮容。 如果容器中的對象數(shù)量小于指定數(shù)量,系統(tǒng)會減少容器的容量。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 標識鍵值對的位置。

返回:

返回由索引標識的鍵。

retainAll

public boolean retainAll(Collection<?> collection)

從 LightweightMap 容器中刪除指定 Collection 對象中不存在的鍵值對。

參數(shù):

參數(shù)名稱 參數(shù)描述
collection 表示指定的 Collection 對象。

返回:

如果從 LightweightMap 容器中刪除任何鍵值對,則返回 true; 否則返回 false。

Throws:

Throw名稱 Throw描述
NullPointerException 如果集合為空,則引發(fā)此異常。

setValueAt

public V setValueAt(int index, V value)

將 LightweightMap 容器中由 index 標識的值設置為指定值。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 標識值的位置。
value 表示要設置的值。

返回:

返回由索引標識的舊值。

Throws:

Throw名稱 Throw描述
IndexOutOfBoundsException 如果指定的索引超出有效范圍,則引發(fā)此異常。

size

public int size()

獲取存儲在 LightweightMap 容器中的鍵值對的數(shù)量。

指定者:

接口 MapK,V 中的大小

返回:

返回存儲在 LightweightMap 容器中的鍵值對的數(shù)量。

toString

public String toString()

獲取包含 LightweightMap 容器中所有鍵和值的字符串。

示例字符串是“{1: "one", 2: "two"}"。

鍵和值必須支持 toString 方法。

覆蓋:

類 Object 中的 toString

返回:

返回一個字符串,其中包含 LightweightMap 容器中的所有鍵和值。

valueAt

public V valueAt(int index)

獲取 LightweightMap 容器中由 index 標識的值。

如果 index 為負數(shù),則從反方向定位該值。

參數(shù):

參數(shù)名稱 參數(shù)描述
index 標識值的位置。

返回:

返回由索引標識的值。

values

public CollectionV values()

獲取包含 LightweightMap 容器的所有值的 Collection 對象。

指定者:

接口 MapK,V 中的值

返回:

返回一個包含 LightweightMap 容器的所有值的 Collection 對象。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號