关于java hashcode的采访问题()

Amm*_*mmu 8 java collections

我最近参加了一次采访,并被问到以下问题.

有两个具有相同哈希码的对象.我在hashmap中插入这两个对象.

hMap.put(a,a); hMap.put(b,b);

哪里 a.hashCode()==b.hashCode()

现在告诉我hashmap里面有多少个对象?

我回答说只有一个对象,因为哈希码相等,两个对象将相等,而hashmap不允许重复键.请告诉我,我的理解是否正确?

Pet*_*hev 32

可以有两个具有相同哈希码的不同元素.所以你的答案是错误的.唯一保证的是,如果两个元素具有不同的哈希码,那么它们就是不同的.当两个元素具有相同的哈希码时,Java使用等于进一步的差异.

所以答案是一两个对象.