BagMultimap<K,V>
, Multimap<K,V>
, MutableMultimap<K,V>
MutableBagMultimap<K,V>
, MutableSortedBagMultimap<K,V>
AbstractMutableBagMultimap
, HashBagMultimap
, HashBagMultimapWithHashingStrategy
, MultiReaderHashBagMultimap
, SynchronizedBagMultimap
, SynchronizedPutHashBagMultimap
, SynchronizedSortedBagMultimap
, TreeBagMultimap
, TreeBagMultimap
, TreeBagMultimap
public interface MutableBagIterableMultimap<K,V> extends MutableMultimap<K,V>, BagMultimap<K,V>
Modifier and Type | Method | Description |
---|---|---|
MutableBagIterableMultimap<K,V> |
asSynchronized() |
Returns a synchronized wrapper backed by this multimap.
|
<K2,V2> MutableBagIterableMultimap<K2,V2> |
collectKeyMultiValues(Function<? super K,? extends K2> keyFunction,
Function<? super V,? extends V2> valueFunction) |
Returns a new multimap with the results of applying the specified keyFunction and valueFunction on each key and corresponding values of the source multimap.
|
<K2,V2> MutableBagIterableMultimap<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> MutableMultimap<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.
|
MutableBagIterableMultimap<V,K> |
flip() |
Given a Multimap from Domain
-> Range return a multimap from Range -> Domain. |
MutableBagIterable<V> |
get(K key) |
Returns a view of all values associated with the given key.
|
MutableBagIterable<V> |
getIfAbsentPutAll(K key,
Iterable<? extends V> values) |
Puts values into multimap if there are no values already associated with key.
|
MutableBagIterableMultimap<K,V> |
newEmpty() |
Creates a new instance of the same implementation type, using the default capacity and growth parameters.
|
MutableBagIterableMultimap<K,V> |
rejectKeysMultiValues(Predicate2<? super K,? super Iterable<V>> predicate) |
Returns all elements of the source multimap that don't satisfy the predicate.
|
MutableBagIterableMultimap<K,V> |
rejectKeysValues(Predicate2<? super K,? super V> predicate) |
Returns all elements of the source multimap that don't satisfy the predicate.
|
MutableBagIterable<V> |
removeAll(Object key) |
|
MutableBagIterable<V> |
replaceValues(K key,
Iterable<? extends V> values) |
|
MutableBagIterableMultimap<K,V> |
selectKeysMultiValues(Predicate2<? super K,? super Iterable<V>> predicate) |
Returns all elements of the source multimap that satisfies the predicate.
|
MutableBagIterableMultimap<K,V> |
selectKeysValues(Predicate2<? super K,? super V> predicate) |
Returns all elements of the source multimap that satisfies the predicate.
|
collectKeyMultiValues, 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, toImmutable, toMap, toMap, toMutable, valuesView
add, clear, put, putAll, putAll, putAllPairs, putAllPairs, remove
MutableBagIterable<V> replaceValues(K key, Iterable<? extends V> values)
replaceValues
in interface MutableMultimap<K,V>
MutableBagIterable<V> removeAll(Object key)
removeAll
in interface MutableMultimap<K,V>
MutableBagIterableMultimap<K,V> newEmpty()
Multimap
MutableBagIterable<V> get(K key)
Multimap
If the given key does not exist, an empty RichIterable
is returned.
MutableBagIterable<V> getIfAbsentPutAll(K key, Iterable<? extends V> values)
MutableMultimap
Multimap.get(Object)
getIfAbsentPutAll
in interface MutableMultimap<K,V>
MutableBagIterableMultimap<V,K> flip()
Multimap
->
Range return a multimap from Range ->
Domain.MutableBagIterableMultimap<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 MutableMultimap<K,V>
predicate
- a Predicate2
to use as the select criteriaMultimap
, which contains elements as a result of the select criteriaMutableBagIterableMultimap<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 MutableMultimap<K,V>
predicate
- a Predicate2
to use as the reject criteriaMultimap
, which contains elements that don't satisfy the predicate
MutableBagIterableMultimap<K,V> selectKeysMultiValues(Predicate2<? super K,? super 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 MutableMultimap<K,V>
predicate
- a Predicate2
to use as the select criteriaMultimap
, which contains elements as a result of the select criteriaMutableBagIterableMultimap<K,V> rejectKeysMultiValues(Predicate2<? super K,? super 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 MutableMultimap<K,V>
predicate
- a Predicate2
to use as the reject criteriaMultimap
, which contains elements that don't satisfy the predicate
<K2,V2> MutableBagIterableMultimap<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 MutableMultimap<K,V>
function
- a Function2
to use for transformationMultimap
, which contains elements as a result of the transformation<K2,V2> MutableBagIterableMultimap<K2,V2> collectKeyMultiValues(Function<? super K,? extends K2> keyFunction, Function<? super V,? extends V2> valueFunction)
Multimap
e.g. return multimap.collectKeyMultiValues(each -> each + 1, Person::getLastName);
collectKeyMultiValues
in interface Multimap<K,V>
collectKeyMultiValues
in interface MutableMultimap<K,V>
keyFunction
- Function
to use transformation to get the keyvalueFunction
- Function
to use transformation to get the valuesMultimap
, which contains elements as a result of the transformation<V2> MutableMultimap<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 MutableMultimap<K,V>
function
- a Function
to use for transformationMultimap
, which contains elements as a result of the transformationMutableBagIterableMultimap<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 MutableMultimap<K,V>
MutableMapIterable.asSynchronized()
Copyright © 2004–2019. All rights reserved.