什么是替代Sets.newConcurrentHashSet()?
题
我升级从谷歌集合0.9至1.0。这似乎是Sets.newConcurrentHashSet()
不再可用。我用它在下面的结构:
public static <K, V> Multimap<K, V> newConcurrentMultimap() { return Multimaps.newMultimap( new ConcurrentHashMap<K, Collection<V>>(), new Supplier>() { @Override public Collection<V> get() { return Sets.<V>newConcurrentHashSet(); } } ); }
什么会是Sets.newConcurrentHashSet()?
的最佳替代编辑: 这样做的原因结构是有多重映射是安全的读取和多线程编写。它是在大多读方案中使用(和将被读取很多)。
的问候,
维姆
解决方案
Sets.newConcurrentHashSet
在1.0rc1被撤回(提交日志)。我不知道退出的理由,但你可以使用的 自己的实现:
Sets.newSetFromMap(new ConcurrentHashMap<V, Boolean>());
其他提示
尝试使用MapMaker
,然后使用newSetFromMap()
不隶属于 StackOverflow