Set
List:是有序的(存储与取出是一致的)集合中的元素可以重复
Set: 是无序的(存储和取出不一致)集合中的元素不可以重复
HashSet:
它不保证Set的迭代顺序,特别是它不保证该顺序恒久不变
HashSet里面的一些方法:
add(); HashSet的add()方法,底层依赖于HashMap()(属于Map接口的实现类)的put(Key,Value),
首先判断他们的hash(),底层调用HashCode(),底层已经重写HashCode().如果一样,在比较他们的
内容是否相同(equals()),底层也已经重写了equals()。
LinkedHashSet:
底层数据是由哈希表和链表实现。
哈希表:保证元素的唯一性
链表:保证元素的存储和取出一致(有序性)
(重)TreeSet:
保证元素的唯一性而且排序。
俩种排序:自然排序和比较器排序
底层依赖TreeMap集合<K,V>------> <String , Integer>/<Integer ,String> 基于红黑树------>(一种自平衡的树结构)
红黑树的存储特点:
第一个元素为它的根节点,后面的元素艮节点进行比较,大的为它的右节点,小的为它的左节点,相等不存储
红黑树获取元素:
分为前序遍历(左中右依次取出),中序遍历(中左右依次取出)和后续遍历(右中左依次取出)。