📅  最后修改于: 2023-12-03 15:16:29.409000             🧑  作者: Mango
IdentityHashMap
是Java中的一个特殊的映射集合,它使用对象的引用作为键来比较而不是使用equals()
和hashCode()
方法。containsKey()
方法是IdentityHashMap
类中的一个函数,用于判断指定键是否存在于映射中。
public boolean containsKey(Object key)
该方法接受一个参数key
,表示要判断的键对象。它返回一个布尔值,表示映射中是否存在指定的键。
以下是使用containsKey()
方法的示例代码:
import java.util.IdentityHashMap;
public class IdentityHashMapExample {
public static void main(String[] args) {
// 创建IdentityHashMap对象
IdentityHashMap<String, Integer> map = new IdentityHashMap<>();
// 添加键值对
String key1 = "key1";
String key2 = new String("key2"); // 使用不同的字符串对象作为键
Integer value1 = 1;
Integer value2 = 2;
map.put(key1, value1);
map.put(key2, value2);
// 使用containsKey()方法判断指定键是否存在
String key3 = "key1";
String key4 = new String("key2");
boolean containsKey3 = map.containsKey(key3);
boolean containsKey4 = map.containsKey(key4);
System.out.println("containsKey3: " + containsKey3); // 输出: containsKey3: true
System.out.println("containsKey4: " + containsKey4); // 输出: containsKey4: false
}
}
在上面的示例中,我们创建了一个IdentityHashMap
对象,并添加了两个键值对。其中,key1
和key3
是同一个字符串对象,而key2
和key4
是不同的字符串对象。使用containsKey()
方法分别判断了key3
和key4
是否存在于映射中,结果分别返回了true
和false
。
需要注意的是,IdentityHashMap
使用的是对象的引用进行比较,因此不同的对象即使内容相同也被认为是不同的键。这就是为什么containsKey()
方法在判断key3
存在而key4
不存在的情况下返回不同的结果。
containsKey()
方法用于判断IdentityHashMap
映射中是否存在指定的键。使用该方法时,需要注意IdentityHashMap
使用对象的引用进行比较,而不是使用equals()
和hashCode()
方法。这在某些特定的应用场景中可以提供更灵活的键值存储。