Pergunta

Estou atualizando das coleções do Google 0,9 para 1,0. Parece Sets.newConcurrentHashSet() não está mais disponível. Eu estava usando no seguinte construto:

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();
         }
    } );
}

Qual seria o melhor substituto para o Sets.NewconcurrentHashSet ()?

EDIT: O motivo desse construto é ter um multimap que é seguro de ler e escrever em vários threads. É usado em um cenário de leitura principalmente (e será lido muito).

Saudações,

Wim

Foi útil?

Solução

Sets.newConcurrentHashSet foi retirado em 1.0rc1 (cometer log). Não sei o motivo da retirada, mas você pode usar a implementação você mesma:

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

Outras dicas

Tente usar MapMaker e depois use newSetFromMap()

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top