Java IdentityHashMap 类

Java.util 包提供了一个 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 

这里,K和V分别是容器维护的key和value的类型。

类构造函数

序号构造函数和描述
1.IdentityHashMap()
构造一个新的、空的身份哈希映射,其默认的预期最大大小 (21)。
2.IdentityHashMap(int ExpectedMaxSize)
构造一个具有指定预期最大值的新的空映射尺寸。
3.IdentityHashMap(Map<? extends K,? extends V> m)
构造一个新的身份包含指定映射中的键值映射的哈希映射。

java.util.IdentityHashMap 方法

java.util.IdentityHashMap 类有许多方法,如下所示:

成员方法

序号方法和描述
1.void clear()
从此映射中删除所有映射。
2.Object clone()
返回此身份哈希映射的浅表副本:键和值本身不会被克隆。
3.boolean containsKey(Object key)
测试指定的对象引用是否是此身份哈希映射中的键。
4.boolean containsValue(Object value)
测试指定的对象引用是否是此身份哈希映射中的值。
5.Set<Map.Entry<K,V>> EntrySet()
返回此映射中包含的映射的集合视图。
6.boolean equals(Object obj)
比较指定对象与此映射是否相等。
7.void forEach(BiConsumer<? super K, ? super V> action)
对此映射中的每个条目执行给定的操作,直到所有条目都已处理完毕或该操作引发异常。
8.V get(Object key)
返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。
9.int hashCode()
返回此映射的哈希代码值。
10。boolean isEmpty()
如果此身份哈希映射不包含键值映射,则返回 true。
11.Set<K> keySet()
返回此映射中包含的键的基于身份的集合视图。
12.V put(K key,V value)
将指定的值与此身份哈希映射中的指定的键相关联。
13.void putAll(Map<? extends K, ? extends V> m)
将指定映射中的所有映射复制到此映射。
14.V remove(Object key)
从此映射中删除该键的映射(如果存在)。
15。void ReplaceAll(BiFunction<? super K, ? super V,? extends V> function)
用在该条目上调用给定函数的结果替换每个条目的值,直到所有条目都已处理完毕或该函数引发异常。
16。int size()
返回此身份哈希映射中键值映射的数量。
17。Collection<V> values()
返回此映射中包含的值的集合视图。

继承的方法

该类继承了以下类的方法:

  • java.lang.Object
  • java.util.AbstractMap<K,V>