黑马程序员技术交流社区

标题: Collection集合问题 [打印本页]

作者: lostnotes    时间: 2015-4-27 21:51
标题: Collection集合问题
HashSet是如何保证元素唯一性的?

作者: Chans_宇    时间: 2015-4-27 22:26
引用类型的话通过改写hashCode()和equals()方法,这两个方法在你要存放的对象元素的实现类上改,一些特殊类如String类已经改写了这两个方法,直接存就行……至于数值类型的直接存……
作者: Richard926    时间: 2015-4-27 23:04
今天晚上刚总结的:HashSet的底层数据结构是哈希表,它依赖hashCode()和equals()两个方法判断对象唯一。首先判断对象的hashCode()值是否相同。如果不同就直接添加到集合;如果相同,继续走equals(),看返回值是true还是false,若是true说明有元素重复则该元素不添加到集合中,若是false说明元素不重复则该元素添加到集合中。
作者: 王善辉    时间: 2015-4-27 23:20
hashcode()  和equals()
作者: 谢永烽    时间: 2015-4-28 16:36
就比如说判断一个人的名字和年龄, 装入HashSet集合中后,底层会产生一个哈希值,当有另一个学生装
作者: 谢永烽    时间: 2015-4-28 16:40
就比如说判断一个人的名字和年龄, 装入HashSet集合中后,底层会产生一个哈希值与之相对应,当有另一个学生装进来后会先通过HashSet集合中的hashcode()方法,判断名字是否相同,若同名会调用equals()方法 比较年龄值是否相同。保证值的唯一性 通过的就是 hashcode()方法 和equals()方法
作者: wnk77521    时间: 2015-4-28 16:50
是通过 hashcode算法与equals 来保证的 元素唯一性的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2