Class AbstractMutableMapIterable<K,V>
java.lang.Object
org.eclipse.collections.impl.AbstractRichIterable<V>
org.eclipse.collections.impl.map.AbstractMapIterable<K,V>
org.eclipse.collections.impl.map.mutable.AbstractMutableMapIterable<K,V>
- All Implemented Interfaces:
Iterable<V>, Map<K,V>, InternalIterable<V>, MapIterable<K, V>, MutableMapIterable<K, V>, RichIterable<V>
- Direct Known Subclasses:
AbstractMutableMap, AbstractMutableSortedMap
public abstract class AbstractMutableMapIterable<K,V>
extends AbstractMapIterable<K,V>
implements MutableMapIterable<K,V>
-
Nested Class Summary
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<K1,V1, V2> MutableMap <K1, V2> aggregateBy(Function<? super K, ? extends K1> keyFunction, Function<? super V, ? extends V1> valueFunction, Function0<? extends V2> zeroValueFactory, Function2<? super V2, ? super V1, ? extends V2> nonMutatingAggregator) Applies an aggregate function over the map grouping results into a map based on the specific key and value groupBy functions.<K2,V2> MutableMap <K2, V2> For each key and value of the map the function is evaluated.<V1> MutableBag<V1> This method will count the number of occurrences of each value calculated by applying the function to each element of the collection.<V1> MutableBag<V1> countByEach(Function<? super V, ? extends Iterable<V1>> function) This method will count the number of occurrences of each value calculated by applying the function to each element of the collection.<V1,P> MutableBag <V1> countByWith(Function2<? super V, ? super P, ? extends V1> function, P parameter) This method will count the number of occurrences of each value calculated by applying the function to each element of the collection with the specified parameter as the second argument.detect(Predicate2<? super K, ? super V> predicate) Return the first key and value of the map for which the predicate evaluates to true when they are given as arguments.detectOptional(Predicate2<? super K, ? super V> predicate) Return the first key and value of the map as an Optional for which the predicate evaluates to true when they are given as arguments.MutableMap<V, K> Return the MapIterable that is obtained by flipping the direction of this map and making the associations from value to key.getIfAbsentPut(K key, Function0<? extends V> function) Get and return the value in the Map at the specified key.getIfAbsentPut(K key, V value) Get and return the value in the Map at the specified key.<P> VgetIfAbsentPutWith(K key, Function<? super P, ? extends V> function, P parameter) Get and return the value in the Map at the specified key.getIfAbsentPutWithKey(K key, Function<? super K, ? extends V> function) Get and return the value in the Map at the specified key.<VV> MutableMapIterable<VV, V> groupByUniqueKey(Function<? super V, ? extends VV> function) For each element of the iterable, the function is evaluated, and the results of these evaluations are collected into a new map, where the transformed value is the key.iterator()keysView()Returns an unmodifiable lazy iterable wrapped around the keySet for the map.RichIterable<Pair<K, V>> Returns an unmodifiable lazy iterable of key/value pairs wrapped around the entrySet for the map.<KK> MutableMap<KK, V> reduceBy(Function<? super V, ? extends KK> groupBy, Function2<? super V, ? super V, ? extends V> reduceFunction) Applies an aggregate function over the iterable grouping results into a map based on the specific groupBy function.<V1> MutableObjectDoubleMap<V1> sumByDouble(Function<? super V, ? extends V1> groupBy, DoubleFunction<? super V> function) Groups and sums the values using the two specified functions.<V1> MutableObjectDoubleMap<V1> sumByFloat(Function<? super V, ? extends V1> groupBy, FloatFunction<? super V> function) Groups and sums the values using the two specified functions.<V1> MutableObjectLongMap<V1> sumByInt(Function<? super V, ? extends V1> groupBy, IntFunction<? super V> function) Groups and sums the values using the two specified functions.<V1> MutableObjectLongMap<V1> sumByLong(Function<? super V, ? extends V1> groupBy, LongFunction<? super V> function) Groups and sums the values using the two specified functions.Looks up the value associated withkey, applies thefunctionto it, and replaces the value.<P> VupdateValueWith(K key, Function0<? extends V> factory, Function2<? super V, ? super P, ? extends V> function, P parameter) Same asMutableMapIterable.updateValue(Object, Function0, Function)with a Function2 and specified parameter which is passed to the function.Returns an unmodifiable lazy iterable wrapped around the values for the map.Methods inherited from class AbstractMapIterable
allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, asLazy, chunk, contains, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, each, forEachKey, forEachValue, forEachWith, forEachWithIndex, getFirst, getIfAbsent, getIfAbsentValue, getIfAbsentWith, getLast, getOnly, getOrDefault, ifPresentApply, isAbsent, keyAndValueEquals, keyAndValueHashCode, noneSatisfy, noneSatisfyWith, toArray, toArrayMethods inherited from class AbstractRichIterable
appendString, appendString, collect, collectIf, collectWith, containsAll, containsAllArguments, containsAllIterable, count, countWith, flatCollect, forEach, groupBy, groupByEach, groupByUniqueKey, injectInto, injectInto, injectInto, injectInto, injectInto, into, isEmpty, max, max, maxBy, min, min, minBy, reject, rejectWith, select, selectWith, sumOfDouble, sumOfFloat, sumOfInt, sumOfLong, toBag, toBiMap, toList, toMap, toSet, toSortedBag, toSortedBag, toSortedBagBy, toSortedListBy, toSortedMap, toSortedMap, toSortedMapBy, toSortedSet, toSortedSet, toSortedSetBy, toString, zip, zipWithIndexMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface InternalIterable
forEach, forEachWith, forEachWithIndexMethods inherited from interface Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, valuesMethods inherited from interface MapIterable
containsKey, containsValue, equals, forEachKey, forEachKeyValue, forEachValue, get, getIfAbsent, getIfAbsentValue, getIfAbsentWith, hashCode, ifPresentApply, injectIntoKeyValue, parallelStream, spliterator, stream, toStringMethods inherited from interface MutableMapIterable
add, aggregateBy, aggregateInPlaceBy, asSynchronized, asUnmodifiable, collectKeysUnique, collectValues, flip, forEach, getOrDefault, groupBy, groupByEach, newEmpty, partition, putAllMapIterable, putPair, reject, reject, rejectWith, removeAllKeys, removeIf, removeKey, select, select, selectInstancesOf, selectWith, tap, toImmutable, withAllKeyValueArguments, withAllKeyValues, withKeyValue, withMap, withMapIterable, withoutAllKeys, withoutKey, zip, zipWithIndexMethods inherited from interface RichIterable
aggregateBy, allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, appendString, appendString, appendString, asLazy, chunk, collect, collect, collectBoolean, collectBoolean, collectByte, collectByte, collectChar, collectChar, collectDouble, collectDouble, collectFloat, collectFloat, collectIf, collectIf, collectInt, collectInt, collectLong, collectLong, collectShort, collectShort, collectWith, collectWith, contains, containsAll, containsAllArguments, containsAllIterable, containsAny, containsAnyIterable, containsBy, containsNone, containsNoneIterable, count, countBy, countByEach, countByWith, countWith, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, each, flatCollect, flatCollect, flatCollectBoolean, flatCollectByte, flatCollectChar, flatCollectDouble, flatCollectFloat, flatCollectInt, flatCollectLong, flatCollectShort, flatCollectWith, flatCollectWith, forEach, getAny, getFirst, getLast, getOnly, groupBy, groupByAndCollect, groupByEach, groupByUniqueKey, injectInto, injectInto, injectInto, injectInto, injectInto, injectIntoDouble, injectIntoFloat, injectIntoInt, injectIntoLong, into, isEmpty, makeString, makeString, makeString, makeString, max, max, maxBy, maxByOptional, maxOptional, maxOptional, min, min, minBy, minByOptional, minOptional, minOptional, noneSatisfy, noneSatisfyWith, notEmpty, partitionWith, reduce, reduceBy, reduceInPlace, reduceInPlace, reject, rejectWith, select, selectWith, size, summarizeDouble, summarizeFloat, summarizeInt, summarizeLong, sumOfDouble, sumOfFloat, sumOfInt, sumOfLong, toArray, toArray, toBag, toBiMap, toImmutableBag, toImmutableBiMap, toImmutableList, toImmutableMap, toImmutableSet, toImmutableSortedBag, toImmutableSortedBag, toImmutableSortedBagBy, toImmutableSortedList, toImmutableSortedList, toImmutableSortedListBy, toImmutableSortedSet, toImmutableSortedSet, toImmutableSortedSetBy, toList, toMap, toMap, toSet, toSortedBag, toSortedBag, toSortedBagBy, toSortedList, toSortedList, toSortedListBy, toSortedMap, toSortedMap, toSortedMapBy, toSortedSet, toSortedSet, toSortedSetBy, zip, zipWithIndex
-
Constructor Details
-
AbstractMutableMapIterable
public AbstractMutableMapIterable()
-
-
Method Details
-
iterator
-
getIfAbsentPut
Description copied from interface:MutableMapIterableGet and return the value in the Map at the specified key. Alternatively, if there is no value in the map at the key, return the result of evaluating the specified Function0, and put that value in the map at the specified key.- Specified by:
getIfAbsentPutin interfaceMutableMapIterable<K,V>
-
getIfAbsentPut
Description copied from interface:MutableMapIterableGet and return the value in the Map at the specified key. Alternatively, if there is no value in the map at the key, return the specified value, and put that value in the map at the specified key.- Specified by:
getIfAbsentPutin interfaceMutableMapIterable<K,V>
-
getIfAbsentPutWithKey
Description copied from interface:MutableMapIterableGet and return the value in the Map at the specified key. Alternatively, if there is no value in the map for that key return the result of evaluating the specified Function using the specified key, and put that value in the map at the specified key.- Specified by:
getIfAbsentPutWithKeyin interfaceMutableMapIterable<K,V>
-
getIfAbsentPutWith
Description copied from interface:MutableMapIterableGet and return the value in the Map at the specified key. Alternatively, if there is no value in the map for that key return the result of evaluating the specified Function using the specified parameter, and put that value in the map at the specified key.- Specified by:
getIfAbsentPutWithin interfaceMutableMapIterable<K,V>
-
updateValue
public V updateValue(K key, Function0<? extends V> factory, Function<? super V, ? extends V> function) Description copied from interface:MutableMapIterableLooks up the value associated withkey, applies thefunctionto it, and replaces the value. If there is no value associated withkey, starts it off with a value supplied byfactory.- Specified by:
updateValuein interfaceMutableMapIterable<K,V>
-
updateValueWith
public <P> V updateValueWith(K key, Function0<? extends V> factory, Function2<? super V, ? super P, ? extends V> function, P parameter) Description copied from interface:MutableMapIterableSame asMutableMapIterable.updateValue(Object, Function0, Function)with a Function2 and specified parameter which is passed to the function.- Specified by:
updateValueWithin interfaceMutableMapIterable<K,V>
-
groupByUniqueKey
Description copied from interface:RichIterableFor each element of the iterable, the function is evaluated, and the results of these evaluations are collected into a new map, where the transformed value is the key. The generated keys must each be unique, or else an exception is thrown.- Specified by:
groupByUniqueKeyin interfaceMutableMapIterable<K,V> - Specified by:
groupByUniqueKeyin interfaceRichIterable<K>- See Also:
-
aggregateBy
public <K1,V1, MutableMap<K1,V2> V2> aggregateBy(Function<? super K, ? extends K1> keyFunction, Function<? super V, ? extends V1> valueFunction, Function0<? extends V2> zeroValueFactory, Function2<? super V2, ? super V1, ? extends V2> nonMutatingAggregator) Description copied from interface:MapIterableApplies an aggregate function over the map grouping results into a map based on the specific key and value groupBy functions. Aggregate results are allowed to be immutable as they will be replaced in place in the map. A second function specifies the initial "zero" aggregate value to work with.MapIterable<String, Interval> map = Maps.mutable.with("oneToFive", Interval.fromTo(1, 5), "sixToNine", Interval.fromTo(6, 9)); MapIterable<String, Long> result = map.aggregateBy( eachKey -> { return eachKey.equals("oneToFive") ? "lessThanSix" : "greaterOrEqualsToSix"; }, each -> each.sumOfInt(Integer::intValue), () -> 0L, (argument1, argument2) -> argument1 + argument2); MapIterable<String, Long> expected = Maps.mutable.with("lessThanSix", Interval.fromTo(1, 5).sumOfInt(Integer::intValue), "greaterOrEqualsToSix", Interval.fromTo(6, 9).sumOfInt(Integer::intValue)); Assert.assertEquals(expected, result);- Specified by:
aggregateByin interfaceMapIterable<K,V> - Specified by:
aggregateByin interfaceMutableMapIterable<K,V>
-
reduceBy
public <KK> MutableMap<KK,V> reduceBy(Function<? super V, ? extends KK> groupBy, Function2<? super V, ? super V, ? extends V> reduceFunction) Description copied from interface:RichIterableApplies an aggregate function over the iterable grouping results into a map based on the specific groupBy function. Aggregate results are allowed to be immutable as they will be replaced in place in the map.- Specified by:
reduceByin interfaceMutableMapIterable<K,V> - Specified by:
reduceByin interfaceRichIterable<K>
-
keysView
Description copied from interface:MapIterableReturns an unmodifiable lazy iterable wrapped around the keySet for the map.- Specified by:
keysViewin interfaceMapIterable<K,V>
-
valuesView
Description copied from interface:MapIterableReturns an unmodifiable lazy iterable wrapped around the values for the map.- Specified by:
valuesViewin interfaceMapIterable<K,V>
-
keyValuesView
Description copied from interface:MapIterableReturns an unmodifiable lazy iterable of key/value pairs wrapped around the entrySet for the map.- Specified by:
keyValuesViewin interfaceMapIterable<K,V>
-
collect
Description copied from interface:MapIterableFor each key and value of the map the function is evaluated. The results of these evaluations are returned in a new map. The map returned will use the values projected from the function rather than the original values.MapIterable<String, String> collected = peopleByCity.collect((City city, Person person) -> Pair.of(city.getCountry(), person.getAddress().getCity()));- Specified by:
collectin interfaceMapIterable<K,V> - Specified by:
collectin interfaceMutableMapIterable<K,V>
-
flipUniqueValues
Description copied from interface:MapIterableReturn the MapIterable that is obtained by flipping the direction of this map and making the associations from value to key.MapIterable<Integer, String> map = this.newMapWithKeysValues(1, "1", 2, "2", 3, "3"); MapIterable<String, Integer> result = map.flipUniqueValues(); Assert.assertTrue(result.equals(UnifiedMap.newWithKeysValues("1", 1, "2", 2, "3", 3)));- Specified by:
flipUniqueValuesin interfaceMapIterable<K,V> - Specified by:
flipUniqueValuesin interfaceMutableMapIterable<K,V>
-
detect
Description copied from interface:MapIterableReturn the first key and value of the map for which the predicate evaluates to true when they are given as arguments. The predicate will only be evaluated until such pair is found or until all the keys and values of the map have been used as arguments. That is, there may be keys and values of the map that are never used as arguments to the predicate. The result is null if predicate does not evaluate to true for any key/value combination.Pair<City, Person> detected = peopleByCity.detect((City city, Person person) -> city.getName().equals("Anytown") && person.getLastName().equals("Smith"));- Specified by:
detectin interfaceMapIterable<K,V>
-
detectOptional
Description copied from interface:MapIterableReturn the first key and value of the map as an Optional for which the predicate evaluates to true when they are given as arguments. The predicate will only be evaluated until such pair is found or until all the keys and values of the map have been used as arguments. That is, there may be keys and values of the map that are never used as arguments to the predicate.Optional<Pair<City, Person>> detected = peopleByCity.detectOptional((city, person) -> city.getName().equals("Anytown") && person.getLastName().equals("Smith"));- Specified by:
detectOptionalin interfaceMapIterable<K,V>
-
sumByInt
public <V1> MutableObjectLongMap<V1> sumByInt(Function<? super V, ? extends V1> groupBy, IntFunction<? super V> function) Description copied from interface:RichIterableGroups and sums the values using the two specified functions.- Specified by:
sumByIntin interfaceMutableMapIterable<K,V> - Specified by:
sumByIntin interfaceRichIterable<K>
-
sumByFloat
public <V1> MutableObjectDoubleMap<V1> sumByFloat(Function<? super V, ? extends V1> groupBy, FloatFunction<? super V> function) Description copied from interface:RichIterableGroups and sums the values using the two specified functions.- Specified by:
sumByFloatin interfaceMutableMapIterable<K,V> - Specified by:
sumByFloatin interfaceRichIterable<K>
-
sumByLong
public <V1> MutableObjectLongMap<V1> sumByLong(Function<? super V, ? extends V1> groupBy, LongFunction<? super V> function) Description copied from interface:RichIterableGroups and sums the values using the two specified functions.- Specified by:
sumByLongin interfaceMutableMapIterable<K,V> - Specified by:
sumByLongin interfaceRichIterable<K>
-
sumByDouble
public <V1> MutableObjectDoubleMap<V1> sumByDouble(Function<? super V, ? extends V1> groupBy, DoubleFunction<? super V> function) Description copied from interface:RichIterableGroups and sums the values using the two specified functions.- Specified by:
sumByDoublein interfaceMutableMapIterable<K,V> - Specified by:
sumByDoublein interfaceRichIterable<K>
-
countBy
Description copied from interface:RichIterableThis method will count the number of occurrences of each value calculated by applying the function to each element of the collection.- Specified by:
countByin interfaceMutableMapIterable<K,V> - Specified by:
countByin interfaceRichIterable<K>- Since:
- 9.0
-
countByWith
public <V1,P> MutableBag<V1> countByWith(Function2<? super V, ? super P, ? extends V1> function, P parameter) Description copied from interface:RichIterableThis method will count the number of occurrences of each value calculated by applying the function to each element of the collection with the specified parameter as the second argument.- Specified by:
countByWithin interfaceMutableMapIterable<K,V> - Specified by:
countByWithin interfaceRichIterable<K>- Since:
- 9.0
-
countByEach
Description copied from interface:RichIterableThis method will count the number of occurrences of each value calculated by applying the function to each element of the collection.- Specified by:
countByEachin interfaceMutableMapIterable<K,V> - Specified by:
countByEachin interfaceRichIterable<K>- Overrides:
countByEachin classAbstractRichIterable<V>- Since:
- 10.0.0
-