A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

HashSet集合中怎么判断元素的唯一性的啊,为什么List集合就不可呢?

8 个回复

倒序浏览
a825125501 来自手机 中级黑马 2016-9-5 18:25:52
沙发
HashSet集合底层是Hash算法和equals方法去判断元素的唯一性的,先判断Hashcode值,如果相同再判断equals方法
回复 使用道具 举报
HashSet属于set集合.set和list同阶,父类都是collection集合,set是元素存取不可重复.如果List集合跟set一样,就没有存在的必要了,不同的集合功能不一样,就这样
回复 使用道具 举报
至于HashSet集合怎么判断元素唯一,楼上已经说过了,如果要知道原理,建议配合视频看底层代码
回复 使用道具 举报

楼上的说得对,HashSet底层是Hash算法和equals方法去判断元素的唯一性的,先判断Hashcode值,如果相同再判断equals方法.  而hashcode的是为了减少调用equals方法的次数的,当要add一个数进集合的时候,它会先判断集合中有没有hashcode和它一样的数,如果hashcode和它一样再调用equals方法比较,如果相同返回true,不添加,如果是false则把该数添加到集合,从而实现了Hashset的唯一性
回复 使用道具 举报
hash方法和equals方法
回复 使用道具 举报
每加入一个新的元素,都会调用它本身的hashcode方法和equals方法来和已存在的元素进行比较,如果两个方法都返回值都是true,则“认为”是同一个元素,就不会被存入到集合中。
回复 使用道具 举报
hashcode和equals方法
回复 使用道具 举报
赞!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马