java 我用hashset add两个不同的对象··但是hashset遍历出来的对象和hashcode是重复的好奇怪啊

java我用hashsetadd两个不同的对象··但是hashset遍历出来的对象和hashcode是重复的好奇怪啊我打印出来看过···在add对象之前传入的对象是不一样... java 我用hashset add两个不同的对象··但是hashset遍历出来的对象和hashcode是重复的好奇怪啊
我打印出来看过···在add对象之前传入的对象是不一样的(对象我重写了里面一个属性的code那个比较的方法)。。但是吧hashset遍历出来得到的就是两个重复的第二个对象。。求大神指导啊
展开
 我来答
百度网友2a99c95
2013-07-30 · 超过24用户采纳过TA的回答
知道答主
回答量:63
采纳率:100%
帮助的人:45.2万
展开全部
hashset不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。这是官方API中说的,所以你遍历的时候就有可能得到两个相同的对象了;或者说是你的遍历方法有问题,下面给你一个参考
HashSet hs = new HashSet();
hs.add("1");
hs.add("2");
Iterator it = hs.iterator();
while (it.hasNext()) {
System.out.println(it.next());

}
神机天下
2013-07-30 · TA获得超过175个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:183万
展开全部
你是不是修改了hashCode 方法? 还是重写了equals 方法?
hash有一个原则 就是 如果两个对象equals相等的话.那么他们产生的hashcode 一定相等..所以hashSet 会认为他们重复
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5b1435d
2013-07-30 · TA获得超过203个赞
知道小有建树答主
回答量:259
采纳率:100%
帮助的人:104万
展开全部
override hashCode() 俺的 equals(),就是你要添加对象的,这个知识点在面试中经常出现。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
venia01
2013-07-30 · TA获得超过355个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:105万
展开全部
能贴代码吗?看你的描述”对象我重写了里面一个属性的code那个比较的方法“也不知道你到底重写了那个方法啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式