结合set 底层实现方式是map 算是一次封装使用 既保证数据只能存放单个数据 又使用到了map的特性 hash 链表结构
关键点 把value 作为key 存放到map中 而value值 则存放了一个 空object
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
那么这么做 就使set 拥有了不同于 map的特性
比如 treemap 可重复 可排序 就变成了 不可重复但是 由于链表形式 可排序
hashSet 与 hashMap 一样都是无序
linkedHashSet 与 linkedHashMap 一样 保证插入顺序 与输出顺序一致
treeSet 和 treeMap 默认 取key的hash值以升序排列数据
网友评论