Qual é o substituto para o set.newconcurrenthashset ()?
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
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