13、Java 集合:Set 总结
小于 1 分钟
13、Java 集合:Set 总结
##Set
1、 无重复元素;
2、 重写了 equals 和 hashCode 方法;
##TreeSet
1、 基于 TreeMap 的红黑树结构实现;
2、 非同步、fail-fast;
3、 不允许使用 NULL 元素;
4、 适用于排序、不包含重复元素场景;
##HashSet
1、 基于哈希表(HashMap)实现;
2、 允许使用 null 元素;
3、 非同步,fail-fast;
4、 适用于快速查找、不包含重复元素场景;
##LinkedHashSet
1、 基于 LinkedHashMap 的 Set 接口的哈希表和链接列表实现;
2、 非同步,fail-fast;
3、 适用于快速查找、有序、不包含重复元素场景;
##CopyOnWriteArraySet
1、 基于 CopyOnWriteArrayList 的 Set;
2、 同步、fail-safe;
3、 迭代器不支持可变 remove 操作;
4、 适用于:set 大小通常保持很小,只读操作远多于可变操作,需要在遍历期间防止线程间的冲突;
##ConcurrentSkipListSet
1、 基于 ConcurrentSkipListMap 的可缩放并发 NavigableSet 实现;
2、 不允许使用 null 元素;
3、 有序;
##EnumSet
1、 与枚举类型一起使用的专用 Set 实现;
2、 不允许使用 null 元素;
3、 非同步;