1. Set集合是Collection集合的子类
    2. Set集合有两个实现类 HashSet、TreeSet
    3. HashSet作为Set集合的主要实现类 HashSet拥有一个LinkedHashSet子类
    4. Set集合元素 无序、不可重复(HashSet)
      1. 无序性 底层存储元素时 并非按照数组索引的顺序添加 而是根据数据的哈希值决定数据位置
      2. 不可重复 添加元素时 调用元素的.equals方法 不能返回true (自定义类型元素需要重写equals和hashCode方法)
    5. HashSet添加元素过程
      1. 获取要添加元素的hashCode值 通过特定算法确定元素在底层数组中的位置
      2. 查看即将要插入的位置是否存在数据 存在则进行hashCode值比较
      3. hashCode值不同 则将新添加的元素放置旧元素的下方 (同一个位置存在多个元素 元素之间使用链表
      4. hashCode值相同 则调用要添加元素的equals方法对当前位置的元素进行比较
      5. 相同添加失败 不同则进行添加
    6. LinkedHashSet 添加元素的同时 每个元素都存在两个引用 记录改元素的上一个元素 下一个元素(链表)
    7. LinkedHashSet 对应需要频繁操作效率更好
    8. TreeSet 可以实现元素排序
    9. TreeSet 要求向集合添加元素时 必须是相同类对象 如第一个元素添加Integer 第二个元素添加String 则会报错
    10. TreeSet 向集合中添加自定义类元素时 需要类实现Comparable接口 重写排序方法