我最近参加了一次面试,被问到以下问题。
有两个具有相同哈希码的对象。我将这两个对象插入到 HashMap 中。
hMap.put(a,a);
hMap.put(b,b);
其中 a.hashCode()==b.hashCode()
现在告诉我 HashMap 中将有多少个对象?
我回答只有一个对象,因为 hashcode 相等,所以两个对象将相等,并且 hashmap 不允许重复键。请告诉我我的理解是否正确?
最佳答案
可以有两个不同的元素具有相同的哈希码。所以你的答案是不正确的。唯一可以保证的是,如果两个元素具有不同的哈希码,那么它们就是不同的。当两个元素具有相同的哈希码时,Java 会使用等于来进一步区分。
所以答案是一两个对象。
关于java - java hashcode()面试题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6691803/