1、Set:注重独一无二的性质,该体系集合可以知道某物是否已存在于集合中,不会存储重复的元素
用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。
---| Itreable 接口 实现该接口可以使用增强for循环
---| Collection 描述所有集合共性的接口
---| List接口 可以有重复元素的集合
---| ArrayList
---| LinkedList
---| Set接口 不可以有重复元素的集合
---| HashSet 线程不安全,存取速度快。底层是以哈希表实现的。
---| TreeSet 红-黑树的数据结构,默认对元素进行自然排序(String)。如果在比较的时候两个对象返回值
2、HashSet
HashSet不存入重复元素的规则.使用hashcode和equals
3、TreeSet
红黑树算法的规则: 左小右大
元素自身具备比较性
实现Comparable接口,重写compareTo方法
这种方式叫做元素的自然排序也叫做默认排序
容器具备比较性
当元素自身不具备比较性,或者元素具备的比较性不是所需要的
容器自身具备。需要定义一个类实现接口Comparator,重写compare方法
当Comparable比较方式和Comparator比较方式同时存在时,以Comparator的比较方式为主
在重写compareTo或者compare方法时,必须要明确比较的主要条件相等时要比较次要条件
上述条件指,在比较方法中,可对多个域进行比较
存入TreeSet集合中的元素要具备比较性
当compareTo()函数返回值为0时,说明两个对象相等
比较器接口:
----| Comparable
compareTo(Object o) 元素自身具备比较性
----| Comparator
compare( Object o1, Object o2 ) 给容器传入比较器
4、LinkedHashSet
会保存插入的顺序
看到array,就要想到角标。
看到link,就要想到first,last。
看到hash,就要想到hashCode,equals.
看到tree,就要想到两个接口。Comparable,Comparator。