Sets.newConcurrentHashSet()的替代品是什么?

时间:2010-01-13 09:45:51

标签: java guava

我正在从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()的最佳替代品?

编辑: 这种结构的原因是有一个可以安全地从多个线程读取和写入的多图。它用于主要阅读的场景(并将被大量阅读)。

的问候,

维姆

2 个答案:

答案 0 :(得分:8)

Sets.newConcurrentHashSet在1.0rc1(commit log)中被撤回。我不知道退出的原因,但您可以自己使用the implementation

Sets.newSetFromMap(new ConcurrentHashMap<V, Boolean>());

答案 1 :(得分:1)

尝试使用MapMaker,然后使用newSetFromMap()