我正在从Google Collections 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()的最佳替代品?
编辑: 这种结构的原因是有一个可以安全地从多个线程读取和写入的多图。它用于主要阅读的场景(并将被大量阅读)。
的问候,
维姆
答案 0 :(得分:8)
Sets.newConcurrentHashSet
在1.0rc1(commit log)中被撤回。我不知道退出的原因,但您可以自己使用the implementation:
Sets.newSetFromMap(new ConcurrentHashMap<V, Boolean>());
答案 1 :(得分:1)
尝试使用MapMaker
,然后使用newSetFromMap()