带有番石榴集合的线程安全HashSet

san*_*lto 15 java collections hashset guava

就像标题所说,我想使用Guava Collections获得一个线程安全的HashSet.

你能帮助我吗?

谢谢!

Chr*_*ung 27

Set<K> set = Collections.newSetFromMap(new ConcurrentHashMap<K, Boolean>());
Run Code Online (Sandbox Code Playgroud)

  • @Willi你不要!!!! 我看不到它!我把它发布在讨论组上. (2认同)
  • 你认为这样做会有一些更直接的方式. (2认同)

san*_*lto 7

这将是正确的答案,使用Guava中的Sets类.无论如何,来自@crhis的回答很好.

Sets.newSetFromMap(new ConcurrentHashMap<V, Boolean>());
Run Code Online (Sandbox Code Playgroud)


tur*_*off 5

Java 8 引入了创建并发散列集的新方法 - ConcurrentHashMap.newKeySet()

Set<K> set = ConcurrentHashMap.newKeySet();
Run Code Online (Sandbox Code Playgroud)

它比包装短 Collections.newSetFromMap