概述:
也称为set集合,但凡实现了Set接口的类都叫做Set集合
特点:
元素无索引,元素不可重复(元素唯一)
- HastSet集合:实现类 元素存取无序
- LinkedHashSet集合:实现类 元素存取有序
- TreeSet集合:实现类 对元素进行排序
注意:
1. Set集合没有特殊的方法,都是使用Collection接口的方法
2. Set集合没有索引,所以遍历元素的方式只有:增强for循环,或者迭代器
HashSet集合保证元素唯一的原理
依赖hashCode() 和 equals() 方法
1.当存储元素的时候,就会调用该元素的hashCode()方法,计算该元素的哈希值
2.判断该哈希值对应的位置上,是否有元素
3.如果该哈希值对应的位置上,没有元素,就直接存储
4.如果该哈希值对应的位置上,有元素,说明产生了哈希冲突
5.产生哈希冲突,就得调用该元素的equals()方法,与该位置上的所有元素进行一一比较
5.1如果比较的时候,有任意一个元素与该元素相同,那么就不存储了