1、总体结构
2、set接口的特点:
<1>无索引
<2>不能存储重复元素
3、元素顺序方面
<1>treeset和LinkedHashSet能保证顺序
<2>hashSet不能保证顺序
4、底层原理
<1>treeSet底层原理是二叉树
<2>hashSet底层原理是哈希表
1.8之前是哈希表加链表
1.8之后链表挂载大于8转为红黑树
哈希表数组的初始化大小为16
<3>LinkedHashSet在哈希表基础上链表
5、set系列集合不能存储重复元素的原理
底层调用了hashcode()和equels()
<1>先用hashCode()看数组是否存在
<2>条件1成立下调用equels()判断是否为同一数据
因此:想用set集合存储第三方自定义元素,要重写hashCode()和equels()