Java WeakHashMap 類



簡介

Java WeakHashMap 類是基於雜湊表的 Map 實現,具有弱鍵。當 WeakHashMap 中的鍵不再使用時,垃圾收集器會自動刪除該鍵對應的條目。以下是關於 WeakHashMap 的重要要點:

  • 支援 null 值和 null 鍵。

  • 與大多數集合類一樣,此類也不是同步的。

  • 此類主要用於鍵物件,其 equals 方法使用 == 運算子測試物件標識。

  • WeakHashMap 中的每個鍵物件都作為弱引用的引用物件間接儲存。

  • 此類是 Java 集合框架的成員。

類宣告

以下是 java.util.WeakHashMap 類的宣告:

public class WeakHashMap<K,V> 
   extends AbstractMap<K,V>
   implements Map<K,V>

這裡 <K> 是此對映維護的鍵的型別,<V> 是對映值的型別。

類建構函式

序號 建構函式及描述
1

WeakHashMap()

此建構函式用於建立一個空的 WeakHashMap,具有預設初始容量 (16) 和載入因子 (0.75)。

2

WeakHashMap(int initialCapacity)

此建構函式用於建立一個空的 WeakHashMap,具有給定的初始容量和預設載入因子 (0.75)。

3

WeakHashMap(int initialCapacity, float loadFactor)

此建構函式用於建立一個空的 WeakHashMap,具有給定的初始容量和給定的載入因子。

4

WeakHashMap(Map<? extends K,? extends V> m)

此建構函式用於建立一個新的 WeakHashMap,其對映與指定的對映相同。

類方法

序號 方法及描述
1 void clear()

此方法刪除此對映中的所有對映。

2 boolean containsKey(Object key)

如果此對映包含指定鍵的對映,則此方法返回 true。

3 boolean containsValue(Object value)

如果此對映將一個或多個鍵對映到指定值,則此方法返回 true。

4 Set<Map.Entry>K,V>> entrySet()

此方法返回此對映中包含的對映的 Set 檢視。

5 v get(Object key)

此方法返回指定鍵對映到的值,如果此對映不包含鍵的對映,則返回 null。

6 boolean isEmpty()

如果此對映不包含鍵值對映,則此方法返回 true。

7 Set<K> keySet()

此方法返回此對映中包含的鍵的 Set 檢視。

8 v put(K key, V value)

此方法將指定的值與此對映中的指定鍵關聯。

9 void putAll(Map<? extends K,? extends V> m)

此方法將指定對映中的所有映射覆制到此對映。

10 v remove(Object key)

如果存在,此方法從此弱雜湊對映中刪除鍵的對映。

11 int size()

此方法返回此對映中鍵值對映的數量。

12 Collection<V> values()

此方法返回此對映中包含的值的 Collection 檢視。

繼承的方法

此類繼承自以下類:

  • java.util.AbstractMap
  • java.lang.Object
  • java.util.Map

向 Integer、Integer 對的 WeakHashMap 新增鍵值對示例

以下示例顯示了 Java WeakHashMap put() 方法的使用,用於將一些值放入 Map 中。我們建立了一個 Integer、Integer 對的 Map 物件。然後使用 put() 方法添加了一些條目,然後列印對映。

package com.tutorialspoint;

import java.util.WeakHashMap;

public class WeakHashMapDemo {
   public static void main(String args[]) {
      
      // create hash map
      WeakHashMap<Integer,Integer> newmap = new WeakHashMap<>();

      // populate hash map
      newmap.put(1, 1);
      newmap.put(2, 2);
      newmap.put(3, 3); 

      System.out.println("Map elements: " + newmap);
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果。

Map elements: {3=3, 2=2, 1=1}
廣告