Java Set Summary

Java Set Summary

一、概要

Set 6个

类名 since 线程安全 element null 特点
Set 1.2
HashSet 1.2 No Yes 基于HashMap实现
TreeSet 1.2 No No 基于TreeMap实现
LinkedHashSet 1.4 No Yes 继承自HashSet
通过前后节点维护元素添加顺序
EnumSet 1.5 No No 用于枚举类型的专用Set实现
抽象类,有两个具体实现
CopyOnWriteArraySet 1.5 Yes Yes 基于CopyOnWriteArrayList实现
add操作通过List的addIfAbsent实现
只适合元素数量较少,且多读少写的场景
ConcurrentSkipListSet 1.6 Yes No 基于ConcurrentSkipListMap实现
元素可排序

二、探究

1、为什么没有ConcurrentHashSet?

# since 1.6
Set<String> jdk_6 = Collections.<String>newSetFromMap(new ConcurrentHashMap<>());

# since 1.8
Set<String> jdk_8 = ConcurrentHashMap.<String>newKeySet();
posted on 2023-03-09 21:39  共感的艺术  阅读(34)  评论(0)    收藏  举报