java.io.Externalizable
, java.io.Serializable
, BagMultimap<K,V>
, MutableBagIterableMultimap<K,V>
, MutableBagMultimap<K,V>
, UnsortedBagMultimap<K,V>
, Multimap<K,V>
, MutableMultimap<K,V>
public final class SynchronizedPutHashBagMultimap<K,V> extends AbstractSynchronizedPutMultimap<K,V,MutableBag<V>> implements MutableBagMultimap<K,V>, java.io.Externalizable
Constructor | Description |
---|---|
SynchronizedPutHashBagMultimap() |
|
SynchronizedPutHashBagMultimap(int initialCapacity) |
|
SynchronizedPutHashBagMultimap(java.lang.Iterable<Pair<K,V>> inputIterable) |
|
SynchronizedPutHashBagMultimap(Multimap<? extends K,? extends V> multimap) |
|
SynchronizedPutHashBagMultimap(Pair<K,V>... pairs) |
Modifier and Type | Method | Description |
---|---|---|
MutableBagMultimap<K,V> |
asSynchronized() |
Returns a synchronized wrapper backed by this multimap.
|
<K2,V2> HashBagMultimap<K2,V2> |
collectKeysValues(Function2<? super K,? super V,Pair<K2,V2>> function) |
Returns a new multimap with the results of applying the specified function on each key and value of the source
multimap.
|
<V2> HashBagMultimap<K,V2> |
collectValues(Function<? super V,? extends V2> function) |
Returns a new multimap with the results of applying the specified function on each value of the source
multimap.
|
MutableBagMultimap<V,K> |
flip() |
Given a Multimap from Domain -> Range return a multimap from Range -> Domain.
|
SynchronizedPutHashBagMultimap<K,V> |
newEmpty() |
Creates a new instance of the same implementation type, using the default capacity and growth parameters.
|
static <K,V> SynchronizedPutHashBagMultimap<K,V> |
newMultimap() |
|
static <K,V> SynchronizedPutHashBagMultimap<K,V> |
newMultimap(int initialCapacity,
float loadFactor,
int concurrencyLevel) |
|
static <K,V> SynchronizedPutHashBagMultimap<K,V> |
newMultimap(java.lang.Iterable<Pair<K,V>> inputIterable) |
|
static <K,V> SynchronizedPutHashBagMultimap<K,V> |
newMultimap(Multimap<? extends K,? extends V> multimap) |
|
static <K,V> SynchronizedPutHashBagMultimap<K,V> |
newMultimap(Pair<K,V>... pairs) |
|
void |
putOccurrences(K key,
V value,
int occurrences) |
|
HashBagMultimap<K,V> |
rejectKeysMultiValues(Predicate2<? super K,? super java.lang.Iterable<V>> predicate) |
Returns all elements of the source multimap that don't satisfy the predicate.
|
HashBagMultimap<K,V> |
rejectKeysValues(Predicate2<? super K,? super V> predicate) |
Returns all elements of the source multimap that don't satisfy the predicate.
|
HashBagMultimap<K,V> |
selectKeysMultiValues(Predicate2<? super K,? super java.lang.Iterable<V>> predicate) |
Returns all elements of the source multimap that satisfies the predicate.
|
HashBagMultimap<K,V> |
selectKeysValues(Predicate2<? super K,? super V> predicate) |
Returns all elements of the source multimap that satisfies the predicate.
|
ImmutableBagMultimap<K,V> |
toImmutable() |
Returns an immutable copy of this Multimap if it is not already immutable.
|
MutableBagMultimap<K,V> |
toMutable() |
Returns a mutable copy of this Multimap.
|
collectKeysValues, collectValues, containsKey, containsKeyAndValue, containsValue, equals, forEachKey, forEachKeyMultiValues, forEachKeyValue, forEachValue, hashCode, keyBag, keyMultiValuePairsView, keysView, keyValuePairsView, multiValuesView, notEmpty, rejectKeysMultiValues, rejectKeysValues, selectKeysMultiValues, selectKeysValues, toString, valuesView
clear, get, isEmpty, keySet, putAll, putAll, readExternal, remove, removeAll, replaceValues, sizeDistinct, toMap, toMap, writeExternal
put, size
collectKeysValues, collectValues, containsKey, containsKeyAndValue, containsValue, equals, forEachKey, forEachKeyMultiValues, forEachKeyValue, forEachValue, hashCode, isEmpty, keyBag, keyMultiValuePairsView, keySet, keysView, keyValuePairsView, multiValuesView, notEmpty, rejectKeysMultiValues, rejectKeysValues, selectKeysMultiValues, selectKeysValues, size, sizeDistinct, toMap, toMap, valuesView
get, removeAll, replaceValues
add, clear, put, putAll, putAll, putAllPairs, putAllPairs, remove
public SynchronizedPutHashBagMultimap()
public SynchronizedPutHashBagMultimap(int initialCapacity)
public SynchronizedPutHashBagMultimap(Multimap<? extends K,? extends V> multimap)
public static <K,V> SynchronizedPutHashBagMultimap<K,V> newMultimap()
public static <K,V> SynchronizedPutHashBagMultimap<K,V> newMultimap(int initialCapacity, float loadFactor, int concurrencyLevel)
public static <K,V> SynchronizedPutHashBagMultimap<K,V> newMultimap(Multimap<? extends K,? extends V> multimap)
public static <K,V> SynchronizedPutHashBagMultimap<K,V> newMultimap(Pair<K,V>... pairs)
public static <K,V> SynchronizedPutHashBagMultimap<K,V> newMultimap(java.lang.Iterable<Pair<K,V>> inputIterable)
public SynchronizedPutHashBagMultimap<K,V> newEmpty()
Multimap
newEmpty
in interface BagMultimap<K,V>
newEmpty
in interface Multimap<K,V>
newEmpty
in interface MutableBagIterableMultimap<K,V>
newEmpty
in interface MutableBagMultimap<K,V>
newEmpty
in interface MutableMultimap<K,V>
newEmpty
in interface UnsortedBagMultimap<K,V>
public MutableBagMultimap<K,V> toMutable()
Multimap
public ImmutableBagMultimap<K,V> toImmutable()
Multimap
The returned Multimap will be Serializable
if this Multimap is Serializable
.
toImmutable
in interface Multimap<K,V>
toImmutable
in interface UnsortedBagMultimap<K,V>
public HashBagMultimap<K,V> selectKeysValues(Predicate2<? super K,? super V> predicate)
Multimap
e.g. return multimap.selectKeysValues(new Predicate2<Integer, Person>() { public boolean accept(Integer age, Person person) { return (age >= 18) && (person.getAddress().getCity().equals("Metuchen")); } });
selectKeysValues
in interface BagMultimap<K,V>
selectKeysValues
in interface Multimap<K,V>
selectKeysValues
in interface MutableBagIterableMultimap<K,V>
selectKeysValues
in interface MutableBagMultimap<K,V>
selectKeysValues
in interface MutableMultimap<K,V>
selectKeysValues
in interface UnsortedBagMultimap<K,V>
predicate
- a Predicate2
to use as the select criteriaMultimap
, which contains elements as a result of the select criteriapublic HashBagMultimap<K,V> rejectKeysValues(Predicate2<? super K,? super V> predicate)
Multimap
e.g. return multimap.rejectKeysValues(new Predicate2<Integer, Person>() { public boolean accept(Integer age, Person person) { return (age >= 18) && (person.getAddress().getCity().equals("Metuchen")); } });
rejectKeysValues
in interface BagMultimap<K,V>
rejectKeysValues
in interface Multimap<K,V>
rejectKeysValues
in interface MutableBagIterableMultimap<K,V>
rejectKeysValues
in interface MutableBagMultimap<K,V>
rejectKeysValues
in interface MutableMultimap<K,V>
rejectKeysValues
in interface UnsortedBagMultimap<K,V>
predicate
- a Predicate2
to use as the reject criteriaMultimap
, which contains elements that don't satisfy the predicate
public HashBagMultimap<K,V> selectKeysMultiValues(Predicate2<? super K,? super java.lang.Iterable<V>> predicate)
Multimap
e.g. return multimap.selectKeysMultiValues(new Predicate2<Integer, Iterable<Person>>() { public boolean accept(Integer age, Iterable<Person> values) { return (age >= 18) && ((RichIterable<Person>)values.size() >= 2); } });
selectKeysMultiValues
in interface BagMultimap<K,V>
selectKeysMultiValues
in interface Multimap<K,V>
selectKeysMultiValues
in interface MutableBagIterableMultimap<K,V>
selectKeysMultiValues
in interface MutableBagMultimap<K,V>
selectKeysMultiValues
in interface MutableMultimap<K,V>
selectKeysMultiValues
in interface UnsortedBagMultimap<K,V>
predicate
- a Predicate2
to use as the select criteriaMultimap
, which contains elements as a result of the select criteriapublic HashBagMultimap<K,V> rejectKeysMultiValues(Predicate2<? super K,? super java.lang.Iterable<V>> predicate)
Multimap
e.g. return multimap.rejectKeysMultiValues(new Predicate2<Integer, Iterable<Person>>() { public boolean accept(Integer age, Iterable<Person> values) { return (age >= 18) && ((RichIterable<Person>)values.size() >= 2); } });
rejectKeysMultiValues
in interface BagMultimap<K,V>
rejectKeysMultiValues
in interface Multimap<K,V>
rejectKeysMultiValues
in interface MutableBagIterableMultimap<K,V>
rejectKeysMultiValues
in interface MutableBagMultimap<K,V>
rejectKeysMultiValues
in interface MutableMultimap<K,V>
rejectKeysMultiValues
in interface UnsortedBagMultimap<K,V>
predicate
- a Predicate2
to use as the reject criteriaMultimap
, which contains elements that don't satisfy the predicate
public <K2,V2> HashBagMultimap<K2,V2> collectKeysValues(Function2<? super K,? super V,Pair<K2,V2>> function)
Multimap
e.g. return multimap.collectKeysValues(new Function2<Integer, Person, Pair<String, String>>() { public Pair<String, String> valueOf(Integer age, Person person) { return Tuples.pair(age.toString(), person.getLastName()); } });
collectKeysValues
in interface Multimap<K,V>
collectKeysValues
in interface MutableBagIterableMultimap<K,V>
collectKeysValues
in interface MutableBagMultimap<K,V>
collectKeysValues
in interface MutableMultimap<K,V>
collectKeysValues
in interface UnsortedBagMultimap<K,V>
function
- a Function2
to use for transformationMultimap
, which contains elements as a result of the transformationpublic <V2> HashBagMultimap<K,V2> collectValues(Function<? super V,? extends V2> function)
Multimap
e.g. return multimap.collectValues(new Function<Person, String>() { public String valueOf(Person person) { return person.getLastName(); } });
collectValues
in interface Multimap<K,V>
collectValues
in interface MutableBagIterableMultimap<K,V>
collectValues
in interface MutableBagMultimap<K,V>
collectValues
in interface MutableMultimap<K,V>
collectValues
in interface UnsortedBagMultimap<K,V>
function
- a Function
to use for transformationMultimap
, which contains elements as a result of the transformationpublic MutableBagMultimap<V,K> flip()
Multimap
flip
in interface BagMultimap<K,V>
flip
in interface Multimap<K,V>
flip
in interface MutableBagIterableMultimap<K,V>
flip
in interface MutableBagMultimap<K,V>
flip
in interface MutableMultimap<K,V>
public void putOccurrences(K key, V value, int occurrences)
putOccurrences
in interface MutableBagMultimap<K,V>
public MutableBagMultimap<K,V> asSynchronized()
MutableMultimap
MutableMultimap synchedMultimap = multimap.asSynchronized(); synchedMultimap.forEachKey(key -> ... ); synchedMultimap.forEachValue(value -> ... ); synchedMultimap.forEachKeyValue((key, value) -> ... ); synchedMultimap.forEachKeyMultiValues((key, values) -> ... );
If you want to iterate imperatively over the keySet(), keysView(), valuesView(), or other views, you will need to protect the iteration by wrapping the code in a synchronized block on the multimap.
asSynchronized
in interface MutableBagIterableMultimap<K,V>
asSynchronized
in interface MutableBagMultimap<K,V>
asSynchronized
in interface MutableMultimap<K,V>
MutableMapIterable.asSynchronized()
Copyright © 2004–2018. All rights reserved.