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>