public interface MutableMultimap<K,V> extends Multimap<K,V>
| Modifier and Type | Method and Description |
|---|---|
default boolean |
add(Pair<? extends K,? extends V> keyValuePair)
Modification operation similar to put, however, takes the key-value pair as the input.
|
MutableMultimap<K,V> |
asSynchronized()
Returns a synchronized wrapper backed by this multimap.
|
void |
clear() |
<K2,V2> MutableMultimap<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> MutableMultimap<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.
|
MutableMultimap<V,K> |
flip()
Given a Multimap from Domain
-> Range return a multimap from Range -> Domain. |
MutableCollection<V> |
get(K key)
Returns a view of all values associated with the given key.
|
MutableCollection<V> |
getIfAbsentPutAll(K key,
Iterable<? extends V> values)
Puts values into multimap if there are no values already associated with key.
|
MutableMultimap<K,V> |
newEmpty()
Creates a new instance of the same implementation type, using the default capacity and growth parameters.
|
boolean |
put(K key,
V value) |
boolean |
putAll(K key,
Iterable<? extends V> values) |
<KK extends K,VV extends V> |
putAll(Multimap<KK,VV> multimap) |
default boolean |
putAllPairs(Iterable<? extends Pair<? extends K,? extends V>> pairs) |
default boolean |
putAllPairs(Pair<? extends K,? extends V>... pairs) |
MutableMultimap<K,V> |
rejectKeysMultiValues(Predicate2<? super K,? super RichIterable<V>> predicate)
Returns all elements of the source multimap that don't satisfy the predicate.
|
MutableMultimap<K,V> |
rejectKeysValues(Predicate2<? super K,? super V> predicate)
Returns all elements of the source multimap that don't satisfy the predicate.
|
boolean |
remove(Object key,
Object value) |
RichIterable<V> |
removeAll(Object key) |
RichIterable<V> |
replaceValues(K key,
Iterable<? extends V> values) |
MutableMultimap<K,V> |
selectKeysMultiValues(Predicate2<? super K,? super RichIterable<V>> predicate)
Returns all elements of the source multimap that satisfies the predicate.
|
MutableMultimap<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, valuesViewMutableMultimap<K,V> newEmpty()
MultimapMutableCollection<V> get(K key)
MultimapIf the given key does not exist, an empty RichIterable is returned.
default boolean add(Pair<? extends K,? extends V> keyValuePair)
keyValuePair - key value pair to add in the multimapput(Object, Object)RichIterable<V> replaceValues(K key, Iterable<? extends V> values)
RichIterable<V> removeAll(Object key)
MutableCollection<V> getIfAbsentPutAll(K key, Iterable<? extends V> values)
Multimap.get(Object)void clear()
MutableMultimap<V,K> flip()
Multimap-> Range return a multimap from Range -> Domain.MutableMultimap<K,V> selectKeysValues(Predicate2<? super K,? super V> predicate)
Multimape.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 Multimap<K,V>predicate - a Predicate2 to use as the select criteriaMultimap, which contains elements as a result of the select criteriaMutableMultimap<K,V> rejectKeysValues(Predicate2<? super K,? super V> predicate)
Multimape.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 Multimap<K,V>predicate - a Predicate2 to use as the reject criteriaMultimap, which contains elements that don't satisfy the predicateMutableMultimap<K,V> selectKeysMultiValues(Predicate2<? super K,? super RichIterable<V>> predicate)
Multimape.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 Multimap<K,V>predicate - a Predicate2 to use as the select criteriaMultimap, which contains elements as a result of the select criteriaMutableMultimap<K,V> rejectKeysMultiValues(Predicate2<? super K,? super RichIterable<V>> predicate)
Multimape.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 Multimap<K,V>predicate - a Predicate2 to use as the reject criteriaMultimap, which contains elements that don't satisfy the predicate<K2,V2> MutableMultimap<K2,V2> collectKeysValues(Function2<? super K,? super V,Pair<K2,V2>> function)
Multimape.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>function - a Function2 to use for transformationMultimap, which contains elements as a result of the transformation<V2> MutableMultimap<K,V2> collectValues(Function<? super V,? extends V2> function)
Multimape.g.
return multimap.collectValues(new Function<Person, String>()
{
public String valueOf(Person person)
{
return person.getLastName();
}
});
collectValues in interface Multimap<K,V>function - a Function to use for transformationMultimap, which contains elements as a result of the transformation<K2,V2> MutableMultimap<K2,V2> collectKeyMultiValues(Function<? super K,? extends K2> keyFunction, Function<? super V,? extends V2> valueFunction)
Multimape.g. return multimap.collectKeyMultiValues(each -> each + 1, Person::getLastName);
MutableMultimap<K,V> asSynchronized()
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.
MutableMapIterable.asSynchronized()Copyright © 2004–2021. All rights reserved.