Class AbstractMutableBagMultimap<K,V>
- java.lang.Object
-
- org.eclipse.collections.impl.multimap.AbstractMultimap<K,V,C>
-
- org.eclipse.collections.impl.multimap.AbstractMutableMultimap<K,V,MutableBag<V>>
-
- org.eclipse.collections.impl.multimap.bag.AbstractMutableBagMultimap<K,V>
-
- All Implemented Interfaces:
BagMultimap<K,V>
,MutableBagIterableMultimap<K,V>
,MutableBagMultimap<K,V>
,UnsortedBagMultimap<K,V>
,Multimap<K,V>
,MutableMultimap<K,V>
- Direct Known Subclasses:
HashBagMultimap
,HashBagMultimapWithHashingStrategy
,MultiReaderHashBagMultimap
public abstract class AbstractMutableBagMultimap<K,V> extends AbstractMutableMultimap<K,V,MutableBag<V>> implements MutableBagMultimap<K,V>
-
-
Field Summary
-
Fields inherited from class org.eclipse.collections.impl.multimap.AbstractMutableMultimap
map, totalSize
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractMutableBagMultimap()
protected
AbstractMutableBagMultimap(int size)
protected
AbstractMutableBagMultimap(java.lang.Iterable<Pair<K,V>> inputIterable)
protected
AbstractMutableBagMultimap(Pair<K,V>... pairs)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MutableBagMultimap<K,V>
asSynchronized()
Returns a synchronized wrapper backed by this multimap.<K2,V2>
HashBagMultimap<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>
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.void
forEachKeyMutableBag(Procedure2<? super K,? super MutableBag<V>> procedure)
void
putOccurrences(K key, V value, int occurrences)
void
readExternal(java.io.ObjectInput in)
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.void
writeExternal(java.io.ObjectOutput out)
-
Methods inherited from class org.eclipse.collections.impl.multimap.AbstractMutableMultimap
addToTotalSize, clear, clearTotalSize, createMap, createMapWithKeyCount, decrementTotalSize, get, getIfAbsentPutAll, getMap, incrementTotalSize, isEmpty, keySet, put, putAll, putAll, remove, removeAll, replaceValues, size, sizeDistinct, subtractFromTotalSize, toMap, toMap
-
Methods inherited from class org.eclipse.collections.impl.multimap.AbstractMultimap
collectKeyMultiValues, collectKeysValues, collectValues, containsKey, containsKeyAndValue, containsValue, createCollection, createCollectionBlock, equals, forEachKey, forEachKeyMultiValues, forEachKeyValue, forEachValue, hashCode, keyBag, keyMultiValuePairsView, keysView, keyValuePairsView, multiValuesView, notEmpty, rejectKeysMultiValues, rejectKeysValues, selectKeysMultiValues, selectKeysValues, toString, valuesView
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.collections.api.multimap.Multimap
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, toMap, toMap, valuesView
-
Methods inherited from interface org.eclipse.collections.api.multimap.bag.MutableBagMultimap
collectValues, flip, get, getIfAbsentPutAll, newEmpty, rejectKeysMultiValues, rejectKeysValues, removeAll, replaceValues, selectKeysMultiValues, selectKeysValues, withKeyMultiValues, withKeyValue
-
Methods inherited from interface org.eclipse.collections.api.multimap.MutableMultimap
add, clear, put, putAll, putAll, putAllPairs, putAllPairs, remove
-
-
-
-
Method Detail
-
toMutable
public MutableBagMultimap<K,V> toMutable()
Description copied from interface:Multimap
Returns a mutable copy of this Multimap.
-
toImmutable
public ImmutableBagMultimap<K,V> toImmutable()
Description copied from interface:Multimap
Returns an immutable copy of this Multimap if it is not already immutable. If the Multimap is immutable, it will return itself.The returned Multimap will be
Serializable
if this Multimap isSerializable
.- Specified by:
toImmutable
in interfaceMultimap<K,V>
- Specified by:
toImmutable
in interfaceUnsortedBagMultimap<K,V>
-
collectKeysValues
public <K2,V2> HashBagMultimap<K2,V2> collectKeysValues(Function2<? super K,? super V,Pair<K2,V2>> function)
Description copied from interface:Multimap
Returns a new multimap with the results of applying the specified function on each key and value of the source multimap. This method is also commonly called transform or map.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()); } });
- Specified by:
collectKeysValues
in interfaceMultimap<K,V>
- Specified by:
collectKeysValues
in interfaceMutableBagIterableMultimap<K,V>
- Specified by:
collectKeysValues
in interfaceMutableBagMultimap<K,V>
- Specified by:
collectKeysValues
in interfaceMutableMultimap<K,V>
- Specified by:
collectKeysValues
in interfaceUnsortedBagMultimap<K,V>
- Parameters:
function
- aFunction2
to use for transformation- Returns:
Multimap
, which contains elements as a result of the transformation
-
collectKeyMultiValues
public <K2,V2> HashBagMultimap<K2,V2> collectKeyMultiValues(Function<? super K,? extends K2> keyFunction, Function<? super V,? extends V2> valueFunction)
Description copied from interface:Multimap
Returns a new multimap with the results of applying the specified keyFunction and valueFunction on each key and corresponding values of the source multimap. This method is also commonly called transform or map.e.g. return multimap.collectKeyMultiValues(each -> each + 1, Person::getLastName);
- Specified by:
collectKeyMultiValues
in interfaceMultimap<K,V>
- Specified by:
collectKeyMultiValues
in interfaceMutableBagIterableMultimap<K,V>
- Specified by:
collectKeyMultiValues
in interfaceMutableBagMultimap<K,V>
- Specified by:
collectKeyMultiValues
in interfaceMutableMultimap<K,V>
- Specified by:
collectKeyMultiValues
in interfaceUnsortedBagMultimap<K,V>
- Parameters:
keyFunction
-Function
to use transformation to get the keyvalueFunction
-Function
to use transformation to get the values- Returns:
- a new
Multimap
, which contains elements as a result of the transformation
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
- Overrides:
writeExternal
in classAbstractMutableMultimap<K,V,MutableBag<V>>
- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
- Overrides:
readExternal
in classAbstractMutableMultimap<K,V,MutableBag<V>>
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
forEachKeyMutableBag
public void forEachKeyMutableBag(Procedure2<? super K,? super MutableBag<V>> procedure)
- Specified by:
forEachKeyMutableBag
in interfaceMutableBagMultimap<K,V>
-
putOccurrences
public void putOccurrences(K key, V value, int occurrences)
- Specified by:
putOccurrences
in interfaceMutableBagMultimap<K,V>
-
asSynchronized
public MutableBagMultimap<K,V> asSynchronized()
Description copied from interface:MutableMultimap
Returns a synchronized wrapper backed by this multimap. The preferred way of iterating over a synchronized multimap is to use the forEachKey(), forEachValue(), forEachKeyValue() and forEachKeyMultiValues methods which are properly synchronized internally.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.
- Specified by:
asSynchronized
in interfaceMutableBagIterableMultimap<K,V>
- Specified by:
asSynchronized
in interfaceMutableBagMultimap<K,V>
- Specified by:
asSynchronized
in interfaceMutableMultimap<K,V>
- Returns:
- a synchronized view of this multimap.
- See Also:
MutableMapIterable.asSynchronized()
-
-