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}
广告