跳至主要內容

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、 非同步;

上次编辑于:
贡献者: Andy