Class ImmutableEmptyMap<K,V>
- java.lang.Object
-
- org.eclipse.collections.impl.AbstractRichIterable<V>
-
- org.eclipse.collections.impl.map.AbstractMapIterable<K,V>
-
- org.eclipse.collections.impl.map.immutable.AbstractImmutableMap<K,V>
-
- org.eclipse.collections.impl.map.immutable.ImmutableEmptyMap<K,V>
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Iterable<V>
,java.util.Map<K,V>
,InternalIterable<V>
,ImmutableMap<K,V>
,ImmutableMapIterable<K,V>
,MapIterable<K,V>
,UnsortedMapIterable<K,V>
,RichIterable<V>
final class ImmutableEmptyMap<K,V> extends AbstractImmutableMap<K,V> implements java.io.Serializable
This is a zero elementImmutableMap
which is created by calling the Maps.immutable.empty() method.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static ImmutableMap<?,?>
INSTANCE
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description ImmutableEmptyMap()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <K2,V2>
ImmutableMap<K2,V2>collect(Function2<? super K,? super V,Pair<K2,V2>> function)
For each key and value of the map the function is evaluated.<R> ImmutableMap<K,R>
collectValues(Function2<? super K,? super V,? extends R> function)
For each key and value of the map the function is evaluated.boolean
containsKey(java.lang.Object key)
boolean
containsValue(java.lang.Object value)
Pair<K,V>
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.void
each(Procedure<? super V> procedure)
The procedure is executed for each element in the iterable.boolean
equals(java.lang.Object other)
Follows the same general contract asMap.equals(Object)
.ImmutableMap<V,K>
flipUniqueValues()
Return the MapIterable that is obtained by flipping the direction of this map and making the associations from value to key.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.V
get(java.lang.Object key)
V
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.V
getIfAbsentValue(K key, V value)
Return the value in the Map that corresponds to the specified key, or if there is no value at the key, returnvalue
.<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.V
getOnly()
Returns the element if the iterable has exactly one element.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.java.util.Set<K>
keySet()
RichIterable<K>
keysView()
Returns an unmodifiable lazy iterable wrapped around the keySet for the map.RichIterable<Pair<K,V>>
keyValuesView()
Returns an unmodifiable lazy iterable of key/value pairs wrapped around the entrySet for the map.boolean
notEmpty()
The English equivalent of !this.isEmpty()ImmutableMap<K,V>
reject(Predicate2<? super K,? super V> predicate)
For each key and value of the map the predicate is evaluated, if the result of the evaluation is false, that key and value are returned in a new map.ImmutableMap<K,V>
select(Predicate2<? super K,? super V> predicate)
For each key and value of the map the predicate is evaluated, if the result of the evaluation is true, that key and value are returned in a new map.int
size()
Returns the number of items in this iterable.java.lang.String
toString()
Returns a string with the elements of the iterable separated by commas with spaces and enclosed in square brackets.java.util.Collection<V>
values()
RichIterable<V>
valuesView()
Returns an unmodifiable lazy iterable wrapped around the values for the map.private java.lang.Object
writeReplace()
-
Methods inherited from class org.eclipse.collections.impl.map.immutable.AbstractImmutableMap
aggregateBy, castToMap, clear, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectWith, countBy, countByEach, countByWith, detectOptional, entrySet, flatCollect, flip, groupBy, groupByEach, groupByUniqueKey, iterator, newWithAllKeyValueArguments, newWithAllKeyValues, newWithKeyValue, newWithMap, newWithMapIterable, newWithoutAllKeys, newWithoutKey, partition, partitionWith, put, putAll, reject, rejectWith, remove, select, selectInstancesOf, selectWith, sumByDouble, sumByFloat, sumByInt, sumByLong, tap, toImmutable, toMap, zip, zipWithIndex
-
Methods inherited from class org.eclipse.collections.impl.map.AbstractMapIterable
allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, asLazy, chunk, contains, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, getFirst, getLast, getOrDefault, isAbsent, keyAndValueEquals, keyAndValueHashCode, 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 class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.collections.api.map.ImmutableMap
aggregateBy, aggregateInPlaceBy, flatCollectWith
-
Methods inherited from interface org.eclipse.collections.api.InternalIterable
forEach
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Methods inherited from interface org.eclipse.collections.api.map.MapIterable
getOrDefault, injectIntoKeyValue, parallelStream, spliterator, stream
-
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, flatCollect, flatCollectBoolean, flatCollectByte, flatCollectChar, flatCollectDouble, flatCollectFloat, flatCollectInt, flatCollectLong, flatCollectShort, flatCollectWith, forEach, getAny, getFirst, getLast, 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
-
-
-
-
Field Detail
-
INSTANCE
static final ImmutableMap<?,?> INSTANCE
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
-
Method Detail
-
size
public int size()
Description copied from interface:RichIterable
Returns the number of items in this iterable.- Specified by:
size
in interfacejava.util.Map<K,V>
- Specified by:
size
in interfaceRichIterable<K>
-
keysView
public RichIterable<K> keysView()
Description copied from interface:MapIterable
Returns an unmodifiable lazy iterable wrapped around the keySet for the map.- Specified by:
keysView
in interfaceMapIterable<K,V>
-
valuesView
public RichIterable<V> valuesView()
Description copied from interface:MapIterable
Returns an unmodifiable lazy iterable wrapped around the values for the map.- Specified by:
valuesView
in interfaceMapIterable<K,V>
-
keyValuesView
public RichIterable<Pair<K,V>> keyValuesView()
Description copied from interface:MapIterable
Returns an unmodifiable lazy iterable of key/value pairs wrapped around the entrySet for the map.- Specified by:
keyValuesView
in interfaceMapIterable<K,V>
-
containsKey
public boolean containsKey(java.lang.Object key)
- Specified by:
containsKey
in interfacejava.util.Map<K,V>
- Specified by:
containsKey
in interfaceMapIterable<K,V>
- See Also:
Map.containsKey(Object)
-
containsValue
public boolean containsValue(java.lang.Object value)
- Specified by:
containsValue
in interfacejava.util.Map<K,V>
- Specified by:
containsValue
in interfaceMapIterable<K,V>
- See Also:
Map.containsValue(Object)
-
get
public V get(java.lang.Object key)
-
values
public java.util.Collection<V> values()
-
toString
public java.lang.String 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:
AbstractCollection.toString()
-
equals
public boolean equals(java.lang.Object other)
Description copied from interface:MapIterable
Follows the same general contract asMap.equals(Object)
.
-
hashCode
public int hashCode()
Description copied from interface:MapIterable
Follows the same general contract asMap.hashCode()
.
-
forEachKeyValue
public void forEachKeyValue(Procedure2<? super K,? super V> procedure)
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>
-
flipUniqueValues
public ImmutableMap<V,K> flipUniqueValues()
Description copied from interface:MapIterable
Return 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:
flipUniqueValues
in interfaceImmutableMap<K,V>
- Specified by:
flipUniqueValues
in interfaceImmutableMapIterable<K,V>
- Specified by:
flipUniqueValues
in interfaceMapIterable<K,V>
- Specified by:
flipUniqueValues
in interfaceUnsortedMapIterable<K,V>
- Overrides:
flipUniqueValues
in classAbstractImmutableMap<K,V>
-
forEachKey
public void forEachKey(Procedure<? super K> procedure)
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>
-
forEachValue
public void forEachValue(Procedure<? super V> procedure)
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>
-
forEachWithIndex
public void forEachWithIndex(ObjectIntProcedure<? super V> objectIntProcedure)
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>
-
forEachWith
public <P> void forEachWith(Procedure2<? super V,? super P> procedure, P parameter)
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>
-
isEmpty
public boolean isEmpty()
Description copied from interface:RichIterable
Returns true if this iterable has zero items.- Specified by:
isEmpty
in interfacejava.util.Map<K,V>
- Specified by:
isEmpty
in interfaceRichIterable<K>
- Overrides:
isEmpty
in classAbstractRichIterable<V>
-
notEmpty
public boolean notEmpty()
Description copied from interface:RichIterable
The English equivalent of !this.isEmpty()- Specified by:
notEmpty
in interfaceRichIterable<K>
-
each
public void each(Procedure<? super V> procedure)
Description copied from interface:RichIterable
The procedure is executed for each element in the iterable.Example using a Java 8 lambda expression:
people.each(person -> LOGGER.info(person.getName()));
Example using an anonymous inner class:
people.each(new Procedure<Person>() { public void value(Person person) { LOGGER.info(person.getName()); } });
This method is a variant ofInternalIterable.forEach(Procedure)
that has a signature conflict withIterable.forEach(java.util.function.Consumer)
.- Specified by:
each
in interfaceRichIterable<K>
- Overrides:
each
in classAbstractMapIterable<K,V>
- See Also:
InternalIterable.forEach(Procedure)
,Iterable.forEach(java.util.function.Consumer)
-
ifPresentApply
public <A> A ifPresentApply(K key, Function<? super V,? extends A> function)
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>
-
getIfAbsent
public V getIfAbsent(K key, Function0<? extends V> function)
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>
-
getIfAbsentValue
public V getIfAbsentValue(K key, V value)
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, returnvalue
.- Specified by:
getIfAbsentValue
in interfaceMapIterable<K,V>
- Overrides:
getIfAbsentValue
in classAbstractMapIterable<K,V>
-
getIfAbsentWith
public <P> V getIfAbsentWith(K key, Function<? super P,? extends V> function, P parameter)
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>
-
collect
public <K2,V2> ImmutableMap<K2,V2> collect(Function2<? super K,? super V,Pair<K2,V2>> function)
Description copied from interface:MapIterable
For 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:
collect
in interfaceImmutableMap<K,V>
- Specified by:
collect
in interfaceImmutableMapIterable<K,V>
- Specified by:
collect
in interfaceMapIterable<K,V>
- Specified by:
collect
in interfaceUnsortedMapIterable<K,V>
- Overrides:
collect
in classAbstractImmutableMap<K,V>
-
collectValues
public <R> ImmutableMap<K,R> collectValues(Function2<? super K,? super V,? extends R> function)
Description copied from interface:MapIterable
For 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<City, String> collected = peopleByCity.collectValues((City city, Person person) -> person.getFirstName() + " " + person.getLastName());
- Specified by:
collectValues
in interfaceImmutableMap<K,V>
- Specified by:
collectValues
in interfaceImmutableMapIterable<K,V>
- Specified by:
collectValues
in interfaceMapIterable<K,V>
- Specified by:
collectValues
in interfaceUnsortedMapIterable<K,V>
- Overrides:
collectValues
in classAbstractImmutableMap<K,V>
-
detect
public Pair<K,V> detect(Predicate2<? super K,? super V> predicate)
Description copied from interface:MapIterable
Return 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:
detect
in interfaceMapIterable<K,V>
- Overrides:
detect
in classAbstractImmutableMap<K,V>
-
reject
public ImmutableMap<K,V> reject(Predicate2<? super K,? super V> predicate)
Description copied from interface:MapIterable
For each key and value of the map the predicate is evaluated, if the result of the evaluation is false, that key and value are returned in a new map.MapIterable<City, Person> rejected = peopleByCity.reject((city, person) -> city.getName().equals("Anytown") && person.getLastName().equals("Smith"));
- Specified by:
reject
in interfaceImmutableMap<K,V>
- Specified by:
reject
in interfaceImmutableMapIterable<K,V>
- Specified by:
reject
in interfaceMapIterable<K,V>
- Specified by:
reject
in interfaceUnsortedMapIterable<K,V>
- Overrides:
reject
in classAbstractImmutableMap<K,V>
-
select
public ImmutableMap<K,V> select(Predicate2<? super K,? super V> predicate)
Description copied from interface:MapIterable
For each key and value of the map the predicate is evaluated, if the result of the evaluation is true, that key and value are returned in a new map.MapIterable<City, Person> selected = peopleByCity.select((city, person) -> city.getName().equals("Anytown") && person.getLastName().equals("Smith"));
- Specified by:
select
in interfaceImmutableMap<K,V>
- Specified by:
select
in interfaceImmutableMapIterable<K,V>
- Specified by:
select
in interfaceMapIterable<K,V>
- Specified by:
select
in interfaceUnsortedMapIterable<K,V>
- Overrides:
select
in classAbstractImmutableMap<K,V>
-
getOnly
public V getOnly()
Description copied from interface:RichIterable
Returns the element if the iterable has exactly one element. Otherwise, throwIllegalStateException
.- Specified by:
getOnly
in interfaceRichIterable<K>
- Overrides:
getOnly
in classAbstractMapIterable<K,V>
- Returns:
- an element of an iterable.
-
writeReplace
private java.lang.Object writeReplace()
-
-