java 我用hashset add两个不同的对象··但是hashset遍历出来的对象和hashcode是重复的好奇怪啊
java我用hashsetadd两个不同的对象··但是hashset遍历出来的对象和hashcode是重复的好奇怪啊我打印出来看过···在add对象之前传入的对象是不一样...
java 我用hashset add两个不同的对象··但是hashset遍历出来的对象和hashcode是重复的好奇怪啊
我打印出来看过···在add对象之前传入的对象是不一样的(对象我重写了里面一个属性的code那个比较的方法)。。但是吧hashset遍历出来得到的就是两个重复的第二个对象。。求大神指导啊 展开
我打印出来看过···在add对象之前传入的对象是不一样的(对象我重写了里面一个属性的code那个比较的方法)。。但是吧hashset遍历出来得到的就是两个重复的第二个对象。。求大神指导啊 展开
展开全部
hashset不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。这是官方API中说的,所以你遍历的时候就有可能得到两个相同的对象了;或者说是你的遍历方法有问题,下面给你一个参考
HashSet hs = new HashSet();
hs.add("1");
hs.add("2");
Iterator it = hs.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
HashSet hs = new HashSet();
hs.add("1");
hs.add("2");
Iterator it = hs.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
展开全部
你是不是修改了hashCode 方法? 还是重写了equals 方法?
hash有一个原则 就是 如果两个对象equals相等的话.那么他们产生的hashcode 一定相等..所以hashSet 会认为他们重复
hash有一个原则 就是 如果两个对象equals相等的话.那么他们产生的hashcode 一定相等..所以hashSet 会认为他们重复
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
override hashCode() 俺的 equals(),就是你要添加对象的,这个知识点在面试中经常出现。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能贴代码吗?看你的描述”对象我重写了里面一个属性的code那个比较的方法“也不知道你到底重写了那个方法啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询