Что является заменой Sets.newConcurrentHashSet ()? - PullRequest
3 голосов
/ 13 января 2010

Я обновляю 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 ()?

Edit: Причиной такой конструкции является наличие мультикарты, которая безопасна для чтения и записи из нескольких потоков. Он используется в сценарии, в основном читаемом (и будет много читаться).

С уважением,

Wim

Ответы [ 2 ]

8 голосов
/ 13 января 2010

Sets.newConcurrentHashSet был отозван в 1.0rc1 ( журнал коммитов ). Я не знаю причину вывода, но вы могли бы использовать реализацию самостоятельно:

Sets.newSetFromMap(new ConcurrentHashMap<V, Boolean>());
1 голос
/ 13 января 2010

Попробуйте использовать MapMaker, а затем используйте newSetFromMap()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...