HashMap使用containsKey问题

破局之路课程 2024-03-20 13:04:43

containsKey() 方法检查 hashMap 中是否存在指定的 key 对应的映射关系。

containsKey() 方法的语法为:

hashmap.containsKey(Object key)

注:hashmap 是 HashMap 类的一个对象。

参数说明:

key - 键返回值

如果 hashMap 中存在指定的 key 对应的映射关系返回 true,否则返回 false。

实例

以下实例演示了 containsKey() 方法的使用:

public static void main(String[] args) { // 创建一个 HashMap HashMap<Integer, String> sites = new HashMap<>(); // 往 HashMap 添加一些元素 sites.put(1, "A"); sites.put(2, "B"); sites.put(3, "C"); System.out.println("sites HashMap: " + sites); //检查 key 为 1 是否存在 if(sites.containsKey(1)) { System.out.println("key 为 1 存在于 sites 中"); } if(sites.containsKey(1L)) { System.out.println("key 为 1L 存在于 sites 中"); } }

打印结果为:

可见类型不一样时导致对比失败。追踪源码如下:

再打印一下1L与1的equals对比结果:

public static void main(String[] args) { // 创建一个 HashMap HashMap<Integer, String> sites = new HashMap<>(); // 往 HashMap 添加一些元素 sites.put(1, "Google"); sites.put(2, "Runoob"); sites.put(3, "Taobao"); System.out.println("sites HashMap: " + sites); //检查 key 为 1 是否存在 if(sites.containsKey(1)) { System.out.println("key 为 1 存在于 sites 中"); } //检查 key 为 1 是否存在 if(sites.containsKey(1L)) { System.out.println("key 为 1L 存在于 sites 中"); } Long a = 1L; System.out.println(a.equals(1)); }

总结:

使用map的containsKey方法的时候,要注意类型问题。不然会有点坑

如果对您有帮助点个赞哦。

0 阅读:0