1 Set<String> s = com.google.common.collect.Sets.newConcurrentHashSet(); // guava 提供的线程安全的 Set ,底层使用 ConcurrentHashMap 实现 2 Set<String> set = new java.util.concurrent.CopyOnWriteArraySet<>(); // jdk提供的,底层使用 CopyOnWriteArrayList 实现,适合集合大小较小的场景 3 Set<String> set = Collections.synchronizedSet(Sets.newHashSet()); // 使用同步来保证线程安全 4 com.alibaba.dubbo.common.utils.ConcurrentHashSet // 底层使用 ConcurrentHashMap 实现
综上可以看出,线程安全的 Set 底层选用 ConcurrentHashMap 的居多
原文:https://www.cnblogs.com/kevin-yuan/p/13533377.html