📜  Java中的IdentityHashMap remove()方法(1)

📅  最后修改于: 2023-12-03 14:42:54.583000             🧑  作者: Mango

Java中的IdentityHashMap remove()方法

IdentityHashMap是Java中的一种特殊Map,它使用"=="而不是"equals()"方法来比较键(key)。那么,它的remove()方法也很特殊,让我们来了解一下。

IdentityHashMap介绍

IdentityHashMap维护着键值对的映射关系。和HashMap不同的是,IdentityHashMap使用"=="方法而不是"equals()"方法来判断键值是否相等。

因为IdentityHashMap使用"=="而不是"equals()"方法来比较键,所以它不支持null作为键。

IdentityHashMap remove()方法

IdentityHashMap的remove()方法用于从Map中删除某个键值对。它的语法如下:

public V remove(Object key)
  • key:要从Map中删除的键。

  • 返回值:删除的键对应的值,如果键不存在,则返回null。

与HashMap类似,IdentityHashMap的remove()方法在删除指定键时,会返回相应的值。如果键不存在,返回null。

需要注意的是,IdentityHashMap使用"=="而不是"equals()"方法来比较键,所以删除键时,需要传入其完全相等的引用。

示例代码
IdentityHashMap<String, Integer> map = new IdentityHashMap<>();
map.put("one", 1);
map.put("two", 2);
map.put("three", 3);

int result = map.remove("one"); // 删除"one"
System.out.println(result); // output: 1

result = map.remove("four"); // 删除不存在的键"four"
System.out.println(result); // output: null

String key = new String("three");
result = map.remove(key); // 删除存在的键"three"
System.out.println(result); // output: null

key = "two";
result = map.remove(key); // 删除存在的键"two"
System.out.println(result); // output: 2

示例代码中,我们通过put()方法向IdentityHashMap中添加了三个键值对。然后,我们分别删除了存在和不存在的键,最后输出了删除的结果。

需要注意的是,示例代码中的"=="比较只适用于常量字符串,而对于new String()创建的实例对象,需要使用equals()方法来进行比较。