Чем можно заменить Sets.newConcurrentHashSet()?
Вопрос
Я обновляю Коллекции Google 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