1.HashSet 存储字符串并遍历
a. HashSet 集合特点
没有索引,存取顺序不一致,元素唯一
遍历和List集合差不多,可以使用增强 for 循环
2.HashSet是如何保证元素的唯一性的?
低层调用存入对象的hashcode()和equals()
原理:(想像拿着火车票找座位)
向HashSet集合存入对象时,对象会调用hashCode方法(获取座位号)
然后去集合(车厢)中找有没有和我hashCode值(座位号)相同的对象
没有:
直接存入HashSet集合
有:
说明哈希值(座位号相同)相同,此时会去调用存入的对象的equlas方法去比较
与哈希值相同的对象逐个(可能之前已经有人坐他身上了)比较
返回true:
认为相同对象,不在存入集合
返回false:
存入集合(坐到和他座位号相等的那个人身上)
|
|