Class ConcurrentHashMap<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>
org.eclipse.collections.impl.map.mutable.AbstractMutableMap<K,V>
org.eclipse.collections.impl.map.mutable.ConcurrentHashMap<K,V>
- All Implemented Interfaces:
Externalizable
,Serializable
,Cloneable
,Iterable<V>
,ConcurrentMap<K,
,V> Map<K,
,V> InternalIterable<V>
,ConcurrentMutableMap<K,
,V> MapIterable<K,
,V> MutableMap<K,
,V> MutableMapIterable<K,
,V> UnsortedMapIterable<K,
,V> RichIterable<V>
public final class ConcurrentHashMap<K,V>
extends AbstractMutableMap<K,V>
implements ConcurrentMutableMap<K,V>, Externalizable
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
MutableMap<K,
V> clone()
<E> MutableMap<K,
V> collectKeysAndValues
(Iterable<E> iterable, Function<? super E, ? extends K> keyFunction, Function<? super E, ? extends V> valueFunction) Adds all the entries derived fromiterable
tothis
.boolean
containsKey
(Object key) boolean
containsValue
(Object value) entrySet()
boolean
Follows the same general contract asMap.equals(Object)
.void
forEachKey
(Procedure<? super K> procedure) Calls theprocedure
with each key of the map.void
forEachKeyValue
(Procedure2<? super K, ? super V> procedure) Calls theprocedure
with each key-value pair of the map.void
forEachValue
(Procedure<? super V> procedure) Calls the procedure with each value of the map.<P> void
forEachWith
(Procedure2<? super V, ? super P> procedure, P parameter) The procedure2 is evaluated for each element in the iterable with the specified parameter provided as the second argument.void
forEachWithIndex
(ObjectIntProcedure<? super V> objectIntProcedure) Iterates over the iterable passing each element and the current relative int index to the specified instance of ObjectIntProcedure.getIfAbsent
(K key, Function0<? extends V> function) Return the value in the Map that corresponds to the specified key, or if there is no value at the key, return the result of evaluating the specified Function0.getIfAbsentPut
(K key, Function<? super K, ? extends V> factory) getIfAbsentPut
(K key, Function0<? extends V> factory) 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> V
getIfAbsentPutWith
(K key, Function<? super P, ? extends V> function, P parameter) Get and return the value in the Map at the specified key.<P> V
getIfAbsentWith
(K key, Function<? super P, ? extends V> function, P parameter) Return the value in the Map that corresponds to the specified key, or if there is no value at the key, return the result of evaluating the specified function and parameter.int
hashCode()
Follows the same general contract asMap.hashCode()
.<A> A
ifPresentApply
(K key, Function<? super V, ? extends A> function) If there is a value in the Map that corresponds to the specified key return the result of applying the specified Function on the value, otherwise return null.boolean
isEmpty()
Returns true if this iterable has zero items.iterator()
keySet()
MutableMap<K,
V> newEmpty()
Creates a new instance of the same type, using the default capacity and growth parameters.<K,
V> MutableMap<K, V> newEmpty
(int capacity) Creates a new instance of the same type, using the given capacity and the default growth parameters.static <K,
V> ConcurrentHashMap<K, V> newMap()
static <K,
V> ConcurrentHashMap<K, V> newMap
(int newSize) static <NK,
NV> ConcurrentHashMap<NK, NV> boolean
notEmpty()
The English equivalent of !this.isEmpty()void
parallelForEachKeyValue
(List<Procedure2<K, V>> blocks, Executor executor) void
parallelForEachValue
(List<Procedure<V>> blocks, Executor executor) void
void
putAllInParallel
(Map<? extends K, ? extends V> map, int chunks, Executor executor) putIfAbsent
(K key, V value) <P1,
P2> V putIfAbsentGetIfPresent
(K key, Function2<? super K, ? super V, ? extends K> keyTransformer, Function3<P1, P2, ? super K, ? extends V> factory, P1 param1, P2 param2) It puts an object into the map based on the key.void
boolean
Remove an entry from the map at the specifiedkey
.boolean
int
size()
Returns the number of items in this iterable.Executes the Procedure for each value of the map and returnsthis
.Returns an immutable copy of this map.toString()
Returns a string with the elements of the iterable separated by commas with spaces and enclosed in square brackets.Looks up the value associated withkey
, applies thefunction
to it, and replaces the value.<P> V
updateValueWith
(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.values()
withAllKeyValueArguments
(Pair<? extends K, ? extends V>... keyValues) Convenience var-args version of withAllKeyValueswithAllKeyValues
(Iterable<? extends Pair<? extends K, ? extends V>> keyValues) This method allows mutable, fixed size, and immutable maps the ability to add elements to their existing elements.withKeyValue
(K key, V value) This method allows mutable, fixed size, and immutable maps the ability to add elements to their existing elements.Similar toMap.putAll(Map)
, but returns this instead of voidwithMapIterable
(MapIterable<? extends K, ? extends V> mapIterable) withoutAllKeys
(Iterable<? extends K> keys) This method allows mutable, fixed size, and immutable maps the ability to remove elements from their existing elements.withoutKey
(K key) This method allows mutable, fixed size, and immutable maps the ability to remove elements from their existing elements.void
Methods inherited from class org.eclipse.collections.impl.map.mutable.AbstractMutableMap
asSynchronized, asUnmodifiable, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectValues, collectWith, flatCollect, flip, groupBy, groupByEach, groupByUniqueKey, partition, partitionWith, reject, reject, rejectWith, select, select, selectInstancesOf, selectWith, zip, zipWithIndex
Methods inherited from class org.eclipse.collections.impl.map.mutable.AbstractMutableMapIterable
aggregateBy, collect, countBy, countByEach, countByWith, detect, detectOptional, flipUniqueValues, getIfAbsentPutWithKey, keysView, keyValuesView, sumByDouble, sumByFloat, sumByInt, sumByLong, valuesView
Methods inherited from class org.eclipse.collections.impl.map.AbstractMapIterable
allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, asLazy, chunk, contains, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, each, getFirst, getIfAbsentValue, getLast, getOnly, getOrDefault, noneSatisfy, noneSatisfyWith, toArray, toArray
Methods inherited from class org.eclipse.collections.impl.AbstractRichIterable
appendString, appendString, collect, collectIf, collectWith, containsAll, containsAllArguments, containsAllIterable, count, countWith, flatCollect, forEach, groupBy, groupByEach, groupByUniqueKey, injectInto, injectInto, injectInto, injectInto, injectInto, into, 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, zip, zipWithIndex
Methods inherited from interface java.util.concurrent.ConcurrentMap
compute, computeIfAbsent, computeIfPresent, forEach, merge, replaceAll
Methods inherited from interface org.eclipse.collections.api.map.ConcurrentMutableMap
getOrDefault
Methods inherited from interface org.eclipse.collections.api.InternalIterable
forEach
Methods inherited from interface org.eclipse.collections.api.map.MapIterable
detect, detectOptional, getIfAbsentValue, injectIntoKeyValue, keysView, keyValuesView, parallelStream, spliterator, stream, valuesView
Methods inherited from interface org.eclipse.collections.api.map.MutableMap
aggregateBy, aggregateBy, aggregateInPlaceBy, asSynchronized, asUnmodifiable, collect, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectValues, collectWith, flatCollect, flatCollectWith, flip, flipUniqueValues, groupBy, groupByEach, groupByUniqueKey, partition, partitionWith, reject, reject, rejectWith, select, select, selectInstancesOf, selectWith, zip, zipWithIndex
Methods inherited from interface org.eclipse.collections.api.map.MutableMapIterable
add, countBy, countByEach, countByWith, getIfAbsentPutWithKey, putAllMapIterable, putPair, removeAllKeys, removeIf, sumByDouble, sumByFloat, sumByInt, sumByLong
Methods inherited from interface org.eclipse.collections.api.RichIterable
aggregateBy, allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, appendString, appendString, appendString, asLazy, chunk, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectWith, contains, containsAll, containsAllArguments, containsAllIterable, containsAny, containsAnyIterable, containsBy, containsNone, containsNoneIterable, count, countBy, countByEach, countByWith, countWith, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, each, flatCollect, flatCollectBoolean, flatCollectByte, flatCollectChar, flatCollectDouble, flatCollectFloat, flatCollectInt, flatCollectLong, flatCollectShort, flatCollectWith, forEach, getAny, getFirst, getLast, getOnly, groupBy, groupByAndCollect, groupByEach, groupByUniqueKey, injectInto, injectInto, injectInto, injectInto, injectInto, injectIntoDouble, injectIntoFloat, injectIntoInt, injectIntoLong, into, makeString, makeString, makeString, makeString, max, max, maxBy, maxByOptional, maxOptional, maxOptional, min, min, minBy, minByOptional, minOptional, minOptional, noneSatisfy, noneSatisfyWith, reduce, reduceInPlace, reduceInPlace, reject, rejectWith, select, selectWith, 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
-
ConcurrentHashMap
public ConcurrentHashMap() -
ConcurrentHashMap
public ConcurrentHashMap(int initialCapacity)
-
-
Method Details
-
newMap
-
newMap
-
putIfAbsent
- Specified by:
putIfAbsent
in interfaceConcurrentMap<K,
V> - Specified by:
putIfAbsent
in interfaceMap<K,
V>
-
getIfAbsentPut
-
getIfAbsentPut
Description copied from interface:MutableMapIterable
Get 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:
getIfAbsentPut
in interfaceMutableMapIterable<K,
V> - Overrides:
getIfAbsentPut
in classAbstractMutableMapIterable<K,
V>
-
getIfAbsentPut
Description copied from interface:MutableMapIterable
Get 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:
getIfAbsentPut
in interfaceMutableMapIterable<K,
V> - Overrides:
getIfAbsentPut
in classAbstractMutableMapIterable<K,
V>
-
putIfAbsentGetIfPresent
public <P1,P2> V putIfAbsentGetIfPresent(K key, Function2<? super K, ? super V, ? extends K> keyTransformer, Function3<P1, P2, ? super K, ? extends V> factory, P1 param1, P2 param2) It puts an object into the map based on the key. It uses a copy of the key converted by transformer.- Parameters:
key
- The "mutable" key, which has the same identity/hashcode as the inserted key, only during this callkeyTransformer
- If the record is absent, the transformer will transform the "mutable" key into an immutable copy of the key. Note that the transformed key must have the same identity/hashcode as the original "mutable" key.factory
- It creates an object, if it is not present in the map already.
-
remove
-
size
public int size()Description copied from interface:RichIterable
Returns the number of items in this iterable. -
isEmpty
public boolean isEmpty()Description copied from interface:RichIterable
Returns true if this iterable has zero items.- Specified by:
isEmpty
in interfaceMap<K,
V> - Specified by:
isEmpty
in interfaceRichIterable<K>
- Overrides:
isEmpty
in classAbstractRichIterable<V>
-
containsKey
- Specified by:
containsKey
in interfaceMap<K,
V> - Specified by:
containsKey
in interfaceMapIterable<K,
V> - See Also:
-
containsValue
- Specified by:
containsValue
in interfaceMap<K,
V> - Specified by:
containsValue
in interfaceMapIterable<K,
V> - See Also:
-
get
-
put
-
putAllInParallel
-
putAll
-
clear
public void clear() -
keySet
-
values
-
entrySet
-
replace
-
replace
-
remove
-
parallelForEachKeyValue
-
parallelForEachValue
-
hashCode
public int hashCode()Description copied from interface:MapIterable
Follows the same general contract asMap.hashCode()
. -
equals
Description copied from interface:MapIterable
Follows the same general contract asMap.equals(Object)
. -
toString
Description copied from class:AbstractRichIterable
Returns a string with the elements of the iterable separated by commas with spaces and enclosed in square brackets.Assert.assertEquals("[]", Lists.mutable.empty().toString()); Assert.assertEquals("[1]", Lists.mutable.with(1).toString()); Assert.assertEquals("[1, 2, 3]", Lists.mutable.with(1, 2, 3).toString());
- Specified by:
toString
in interfaceMapIterable<K,
V> - Specified by:
toString
in interfaceRichIterable<K>
- Overrides:
toString
in classAbstractRichIterable<V>
- Returns:
- a string representation of this collection.
- See Also:
-
readExternal
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
ClassNotFoundException
-
writeExternal
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
newMap
-
withKeyValue
Description copied from interface:MutableMapIterable
This method allows mutable, fixed size, and immutable maps the ability to add elements to their existing elements. In order to support fixed size maps, a new instance of a map would have to be returned including the keys and values of the original plus the additional key and value. In the case of mutable maps, the original map is modified and then returned. In order to use this method properly with mutable and fixed size maps the following approach must be taken:map = map.withKeyValue("new key", "new value");
In the case of FixedSizeMap, a new instance will be returned by withKeyValue, and any variables that previously referenced the original map will need to be redirected to reference the new instance. In the case of a FastMap or UnifiedMap, you will be replacing the reference to map with map, since FastMap and UnifiedMap will both return "this" after calling put on themselves.- Specified by:
withKeyValue
in interfaceMutableMap<K,
V> - Specified by:
withKeyValue
in interfaceMutableMapIterable<K,
V> - Overrides:
withKeyValue
in classAbstractMutableMap<K,
V> - See Also:
-
withMap
Description copied from interface:MutableMapIterable
Similar toMap.putAll(Map)
, but returns this instead of void- Specified by:
withMap
in interfaceConcurrentMutableMap<K,
V> - Specified by:
withMap
in interfaceMutableMap<K,
V> - Specified by:
withMap
in interfaceMutableMapIterable<K,
V> - See Also:
-
withMapIterable
- Specified by:
withMapIterable
in interfaceConcurrentMutableMap<K,
V> - Specified by:
withMapIterable
in interfaceMutableMap<K,
V> - Specified by:
withMapIterable
in interfaceMutableMapIterable<K,
V>
-
withAllKeyValues
public ConcurrentHashMap<K,V> withAllKeyValues(Iterable<? extends Pair<? extends K, ? extends V>> keyValues) Description copied from interface:MutableMapIterable
This method allows mutable, fixed size, and immutable maps the ability to add elements to their existing elements. In order to support fixed size maps, a new instance of a map would have to be returned including the keys and values of the original plus all the additional keys and values. In the case of mutable maps, the original map is modified and then returned. In order to use this method properly with mutable and fixed size maps the following approach must be taken:map = map.withAllKeyValues(FastList.newListWith(PairImpl.of("new key", "new value")));
In the case of FixedSizeMap, a new instance will be returned by withAllKeyValues, and any variables that previously referenced the original map will need to be redirected to reference the new instance. In the case of a FastMap or UnifiedMap, you will be replacing the reference to map with map, since FastMap and UnifiedMap will both return "this" after calling put on themselves.- Specified by:
withAllKeyValues
in interfaceMutableMap<K,
V> - Specified by:
withAllKeyValues
in interfaceMutableMapIterable<K,
V> - Overrides:
withAllKeyValues
in classAbstractMutableMap<K,
V> - See Also:
-
withAllKeyValueArguments
Description copied from interface:MutableMapIterable
Convenience var-args version of withAllKeyValues- Specified by:
withAllKeyValueArguments
in interfaceMutableMap<K,
V> - Specified by:
withAllKeyValueArguments
in interfaceMutableMapIterable<K,
V> - Overrides:
withAllKeyValueArguments
in classAbstractMutableMap<K,
V> - See Also:
-
withoutKey
Description copied from interface:MutableMapIterable
This method allows mutable, fixed size, and immutable maps the ability to remove elements from their existing elements. In order to support fixed size maps, a new instance of a map would have to be returned including the keys and values of the original minus the key and value to be removed. In the case of mutable maps, the original map is modified and then returned. In order to use this method properly with mutable and fixed size maps the following approach must be taken:map = map.withoutKey("key");
In the case of FixedSizeMap, a new instance will be returned by withoutKey, and any variables that previously referenced the original map will need to be redirected to reference the new instance. In the case of a FastMap or UnifiedMap, you will be replacing the reference to map with map, since FastMap and UnifiedMap will both return "this" after calling remove on themselves.- Specified by:
withoutKey
in interfaceMutableMap<K,
V> - Specified by:
withoutKey
in interfaceMutableMapIterable<K,
V> - Overrides:
withoutKey
in classAbstractMutableMap<K,
V> - See Also:
-
withoutAllKeys
Description copied from interface:MutableMapIterable
This method allows mutable, fixed size, and immutable maps the ability to remove elements from their existing elements. In order to support fixed size maps, a new instance of a map would have to be returned including the keys and values of the original minus all the keys and values to be removed. In the case of mutable maps, the original map is modified and then returned. In order to use this method properly with mutable and fixed size maps the following approach must be taken:map = map.withoutAllKeys(FastList.newListWith("key1", "key2"));
In the case of FixedSizeMap, a new instance will be returned by withoutAllKeys, and any variables that previously referenced the original map will need to be redirected to reference the new instance. In the case of a FastMap or UnifiedMap, you will be replacing the reference to map with map, since FastMap and UnifiedMap will both return "this" after calling remove on themselves.- Specified by:
withoutAllKeys
in interfaceMutableMap<K,
V> - Specified by:
withoutAllKeys
in interfaceMutableMapIterable<K,
V> - Overrides:
withoutAllKeys
in classAbstractMutableMap<K,
V> - See Also:
-
clone
- Specified by:
clone
in interfaceMutableMap<K,
V> - Specified by:
clone
in classAbstractMutableMap<K,
V>
-
newEmpty
Description copied from class:AbstractMutableMap
Creates a new instance of the same type, using the given capacity and the default growth parameters.- Specified by:
newEmpty
in classAbstractMutableMap<K,
V>
-
notEmpty
public boolean notEmpty()Description copied from interface:RichIterable
The English equivalent of !this.isEmpty()- Specified by:
notEmpty
in interfaceRichIterable<K>
-
forEachWithIndex
Description copied from interface:InternalIterable
Iterates over the iterable passing each element and the current relative int index to the specified instance of ObjectIntProcedure.Example using a Java 8 lambda:
people.forEachWithIndex((Person person, int index) -> LOGGER.info("Index: " + index + " person: " + person.getName()));
Example using an anonymous inner class:
people.forEachWithIndex(new ObjectIntProcedure<Person>() { public void value(Person person, int index) { LOGGER.info("Index: " + index + " person: " + person.getName()); } });
- Specified by:
forEachWithIndex
in interfaceInternalIterable<K>
- Overrides:
forEachWithIndex
in classAbstractMapIterable<K,
V>
-
iterator
-
newEmpty
Description copied from interface:MutableMapIterable
Creates a new instance of the same type, using the default capacity and growth parameters.- Specified by:
newEmpty
in interfaceMutableMap<K,
V> - Specified by:
newEmpty
in interfaceMutableMapIterable<K,
V>
-
tap
Description copied from interface:MapIterable
Executes the Procedure for each value of the map and returnsthis
.return peopleByCity.tap(person -> LOGGER.info(person.getName()));
- Specified by:
tap
in interfaceConcurrentMutableMap<K,
V> - Specified by:
tap
in interfaceMapIterable<K,
V> - Specified by:
tap
in interfaceMutableMap<K,
V> - Specified by:
tap
in interfaceMutableMapIterable<K,
V> - Specified by:
tap
in interfaceRichIterable<K>
- Specified by:
tap
in interfaceUnsortedMapIterable<K,
V> - Overrides:
tap
in classAbstractMutableMap<K,
V> - See Also:
-
forEachValue
Description copied from interface:MapIterable
Calls the procedure with each value of the map.Set<String> result = UnifiedSet.newSet(); MutableMap<Integer, String> map = this.newMapWithKeysValues(1, "One", 2, "Two", 3, "Three", 4, "Four"); map.forEachValue(new CollectionAddProcedure<String>(result)); Verify.assertSetsEqual(UnifiedSet.newSetWith("One", "Two", "Three", "Four"), result);
- Specified by:
forEachValue
in interfaceMapIterable<K,
V> - Overrides:
forEachValue
in classAbstractMapIterable<K,
V>
-
forEachKey
Description copied from interface:MapIterable
Calls theprocedure
with each key of the map.final Collection<Integer> result = new ArrayList<Integer>(); MutableMap<Integer, String> map = this.newMapWithKeysValues(1, "1", 2, "2", 3, "3"); map.forEachKey(new CollectionAddProcedure<Integer>(result)); Verify.assertContainsAll(result, 1, 2, 3);
- Specified by:
forEachKey
in interfaceMapIterable<K,
V> - Overrides:
forEachKey
in classAbstractMapIterable<K,
V>
-
forEachKeyValue
Description copied from interface:MapIterable
Calls theprocedure
with each key-value pair of the map.final Collection<String> collection = new ArrayList<String>(); MutableMap<Integer, String> map = this.newMapWithKeysValues(1, "One", 2, "Two", 3, "Three"); map.forEachKeyValue((Integer key, String value) -> collection.add(String.valueOf(key) + value)); Verify.assertContainsAll(collection, "1One", "2Two", "3Three");
- Specified by:
forEachKeyValue
in interfaceMapIterable<K,
V>
-
collectKeysAndValues
public <E> MutableMap<K,V> collectKeysAndValues(Iterable<E> iterable, Function<? super E, ? extends K> keyFunction, Function<? super E, ? extends V> valueFunction) Description copied from interface:MutableMap
Adds all the entries derived fromiterable
tothis
. The key and value for each entry is determined by applying thekeyFunction
andvalueFunction
to each item incollection
. Any entry inmap
that has the same key as an entry inthis
will have its value replaced by that inmap
.- Specified by:
collectKeysAndValues
in interfaceMutableMap<K,
V>
-
removeKey
Description copied from interface:MutableMapIterable
Remove an entry from the map at the specifiedkey
.- Specified by:
removeKey
in interfaceMutableMapIterable<K,
V> - Returns:
- The value removed from entry at key, or null if not found.
- See Also:
-
getIfAbsentPutWith
Description copied from interface:MutableMapIterable
Get 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:
getIfAbsentPutWith
in interfaceMutableMapIterable<K,
V> - Overrides:
getIfAbsentPutWith
in classAbstractMutableMapIterable<K,
V>
-
getIfAbsent
Description copied from interface:MapIterable
Return the value in the Map that corresponds to the specified key, or if there is no value at the key, return the result of evaluating the specified Function0.- Specified by:
getIfAbsent
in interfaceMapIterable<K,
V> - Overrides:
getIfAbsent
in classAbstractMapIterable<K,
V>
-
getIfAbsentWith
Description copied from interface:MapIterable
Return the value in the Map that corresponds to the specified key, or if there is no value at the key, return the result of evaluating the specified function and parameter.- Specified by:
getIfAbsentWith
in interfaceMapIterable<K,
V> - Overrides:
getIfAbsentWith
in classAbstractMapIterable<K,
V>
-
ifPresentApply
Description copied from interface:MapIterable
If there is a value in the Map that corresponds to the specified key return the result of applying the specified Function on the value, otherwise return null.- Specified by:
ifPresentApply
in interfaceMapIterable<K,
V> - Overrides:
ifPresentApply
in classAbstractMapIterable<K,
V>
-
forEachWith
Description copied from interface:InternalIterable
The procedure2 is evaluated for each element in the iterable with the specified parameter provided as the second argument.Example using a Java 8 lambda:
people.forEachWith((Person person, Person other) -> { if (person.isRelatedTo(other)) { LOGGER.info(person.getName()); } }, fred);
Example using an anonymous inner class:
people.forEachWith(new Procedure2<Person, Person>() { public void value(Person person, Person other) { if (person.isRelatedTo(other)) { LOGGER.info(person.getName()); } } }, fred);
- Specified by:
forEachWith
in interfaceInternalIterable<K>
- Overrides:
forEachWith
in classAbstractMapIterable<K,
V>
-
updateValue
public V updateValue(K key, Function0<? extends V> factory, Function<? super V, ? extends V> function) Description copied from interface:MutableMapIterable
Looks up the value associated withkey
, applies thefunction
to it, and replaces the value. If there is no value associated withkey
, starts it off with a value supplied byfactory
.- Specified by:
updateValue
in interfaceMutableMapIterable<K,
V> - Overrides:
updateValue
in classAbstractMutableMapIterable<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:MutableMapIterable
Same asMutableMapIterable.updateValue(Object, Function0, Function)
with a Function2 and specified parameter which is passed to the function.- Specified by:
updateValueWith
in interfaceMutableMapIterable<K,
V> - Overrides:
updateValueWith
in classAbstractMutableMapIterable<K,
V>
-
toImmutable
Description copied from interface:MutableMapIterable
Returns an immutable copy of this map. If the map is immutable, it returns itself.- Specified by:
toImmutable
in interfaceMapIterable<K,
V> - Specified by:
toImmutable
in interfaceMutableMapIterable<K,
V> - Specified by:
toImmutable
in interfaceUnsortedMapIterable<K,
V> - Overrides:
toImmutable
in classAbstractMutableMap<K,
V>
-