首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于java hashcode()的面试问题

关于java hashcode()的面试问题
EN

Stack Overflow用户
提问于 2011-07-14 18:32:14
回答 5查看 5.1K关注 0票数 8

我最近参加了一次面试,被问到了以下问题。

有两个对象具有相同的哈希码。我将这两个对象插入到一个hashmap中。

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

where a.hashCode()==b.hashCode()

现在告诉我hashmap中会有多少个对象?

我回答说只有一个对象,因为hashcode是相等的,所以两个对象是相等的,hashmap不允许重复的键。请告诉我我的理解是否正确?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-14 18:34:18

可以有两个不同的元素具有相同的哈希码。所以你的答案是不正确的。唯一可以保证的是,如果两个元素有不同的哈希码,那么它们就不同。当两个元素具有相同的哈希码时,Java使用equals来进一步区分。

所以答案是一个或两个对象。

票数 32
EN

Stack Overflow用户

发布于 2011-07-14 18:35:01

hashmap中将有一个或两个对象。

如果两个对象不相等,也就是!a.equals(b),那么两个对象都将被存储。

票数 3
EN

Stack Overflow用户

发布于 2011-07-14 18:35:44

不,hashCode是为了提高效率而进行的初始查找,但是除非使用a.equals(b)==true,否则将有两个条目

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6691803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档