Frage

Ich bin ein Upgrade von Google Kollektionen 0,9 bis 1,0. Es scheint Sets.newConcurrentHashSet() ist nicht mehr verfügbar. Ich war es in dem folgende Konstrukt:

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

Was ist der beste Ersatz für Sets.newConcurrentHashSet wäre ()?

Edit: Der Grund für dieses Konstrukt ist ein multimap zu haben, die sicher von mehreren Threads lesen und zu schreiben. Es wird in einem meist gelesenen Szenario verwendet (und wird eine Menge sein lesen).

Grüße,

Wim

War es hilfreich?

Lösung

Sets.newConcurrentHashSet wurde in 1.0rc1 zurückgezogen ( log commit ). Ich weiß nicht, den Grund für den Rückzug, aber man konnte a href verwenden <= "http://code.google.com/p/google-collections/source/diff?spec=svn80&r=80&format=side&path=/trunk /src/com/google/common/collect/Sets.java&old_path=/trunk/src/com/google/common/collect/Sets.java&old=78" rel = "noreferrer"> die Umsetzung selbst:

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

Andere Tipps

Versuchen Sie, Verwendung MapMaker und verwenden Sie dann newSetFromMap()

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top