黑马程序员技术交流社区
标题:
HashSet怎样保证元素无序不重复的,详细一点哦
[打印本页]
作者:
暗夜流月
时间:
2015-10-26 21:45
标题:
HashSet怎样保证元素无序不重复的,详细一点哦
作者:
新火燎塬521
时间:
2015-10-26 21:45
HashSet是哈希表结构,当一个元素要存入HashSet集合时,首先通过自身的hashCode方法算出一个值,然后通过这个值查找元素在集合中的位置,如果该位置没有元素,那么就存入。如果该位置上有元素,那么继续调用该元素的equals方法进行比较,如果equals方法返回为真,证明这两个元素是相同元素,则不存。否则则在该位置上存储2个元素(一般不可能重复)所以当一个自定义的对象想正确存入HashSet集合,那么应该重写Object的hashCode和equals。HashSet是通过hashCode()和equals()方法确保元素无序不重复的 可以理解吗?希望可以帮到你
作者:
暗夜流月
时间:
2015-10-26 21:59
你的回答勾起了我的回忆,谢谢
作者:
菊花爆满山
时间:
2015-10-29 12:38
依靠两个方法hashCode和equals方法
作者:
redsifei
时间:
2015-10-30 23:20
HashSet 的add方法调用了HashMap的put方法,会调用被添加元素的HashCode和equals方法
通过这两个方法比较被添加元素是否是相等的,如果相等,就不添加
作者:
陈威
时间:
2015-10-31 23:58
使用HashCode和equals 首先通过比较地址值是否相同,如果不同,再比较equals ,一般来说都会重写equals方法!
作者:
xiaojunru
时间:
2015-12-6 23:47
来晚了,本来想来解决这个问题的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2