HashMap中判断key条件

Posted use-d

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashMap中判断key条件相关的知识,希望对你有一定的参考价值。

if (p.hash == hash && ((k = p.key) == key || (key != null && key.equals(k))))

源码中为什么使用了equals判断相等后,同时需要判断hash码是否相同?

这里需要注意的是key可以使对象即Object类型的,也可以是Long、Integer等类型;

  如果是object作为key,实际判断key相等默认使用object=object方式,

  如果是Long、Integer类型作为key时,实际equals方法中判断的是值是否相同,因此有时会类型不同但是值相同,为了防止这种情况增加了hash码判断。

以上是关于HashMap中判断key条件的主要内容,如果未能解决你的问题,请参考以下文章

java map key可以重复吗

java-tip-HashMap

HashMap深度解析

HashMap原理:哈希函数的设计

java中key值可以重复的map:IdentityHashMap

hashmap冲突的解决方法以及原理分析: