Java IdentityHashMap 類



介紹

Java IdentityHashMap 類使用雜湊表實現 Map 介面,在比較鍵(和值)時使用引用相等性代替物件相等性。以下是關於 IdentityHashMap 的重要幾點:

  • 此類提供所有可選的對映操作,並允許空值和空鍵。

  • 此類不保證對映的順序;特別是,它不保證順序會隨時間保持不變。

  • 在 IdentityHashMap 中,當且僅當 (k1==k2) 時,兩個鍵 k1 和 k2 被認為相等,而在 Map 實現(如 HashMap)中,當且僅當 (k1==null ? k2==null : k1.equals(k2)) 時,兩個鍵 k1 和 k2 被認為相等。

類宣告

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

public class IdentityHashMap<K,V>
   extends AbstractMap<K,V>
   implements Map<K,V>, Serializable, Cloneable

類建構函式

序號 建構函式及描述
1

IdentityHashMap()

這將構造一個新的空 IdentityHashMap,預設預期最大大小為 (21)。

2

IdentityHashMap(int expectedMaxSize)

這將構造一個新的空對映,具有指定的預期最大大小。

3

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

這將構造一個新的 IdentityHashMap,其中包含指定對映中的鍵值對映。

類方法

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

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

2 Object clone()

此方法返回此 IdentityHashMap 的淺複製:鍵和值本身不會被克隆。

3 boolean containsKey(Object key)

此方法測試指定的物件引用是否為此 IdentityHashMap 中的鍵。

4 boolean containsValue(Object value)

此方法測試指定的物件引用是否為此 IdentityHashMap 中的值。

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

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

6 boolean equals(Object o)

此方法將指定的物件與此對映進行相等性比較。

7 V get(Object key)

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

8 int hashCode()

此方法返回此對映的雜湊碼值。

9 boolean isEmpty()

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

10 Set<K> keySet()

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

11 V put(K key, V value)

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

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

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

13 V remove(Object key)

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

14 int size()

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

15 Collection<V> values()

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

繼承的方法

此類繼承自以下類的方法:

  • java.util.AbstractMap
  • java.util.Object

在 IdentityHashMap 中新增鍵值對映示例

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

package com.tutorialspoint;

import java.util.IdentityHashMap;

public class IdentityHashMapDemo {
   public static void main(String args[]) {
      
      // create identity map
      IdentityHashMap<Integer,Integer> newmap = new IdentityHashMap<>();

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

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

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

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