Class DoubletonMap<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.fixed.AbstractMemoryEfficientMutableMap<K,V>
org.eclipse.collections.impl.map.fixed.DoubletonMap<K,V>
- All Implemented Interfaces:
Externalizable, Serializable, Cloneable, Iterable<V>, Map<K,V>, InternalIterable<V>, FixedSizeMap<K, V>, MapIterable<K, V>, MutableMap<K, V>, MutableMapIterable<K, V>, UnsortedMapIterable<K, V>, RichIterable<V>
final class DoubletonMap<K,V>
extends AbstractMemoryEfficientMutableMap<K,V>
implements Externalizable
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractMutableMap
AbstractMutableMap.ValuesCollectionCommon<V> -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()<K2,V2> FixedSizeMap <K2, V2> For each key and value of the map the function is evaluated.<R> FixedSizeMap<R, V> collectKeysUnique(Function2<? super K, ? super V, ? extends R> function) For each key and value of the map the function is evaluated.<R> FixedSizeMap<K, R> collectValues(Function2<? super K, ? super V, ? extends R> function) For each key and value of the map the function is evaluated.booleancontainsKey(Object key) booleancontainsValue(Object value) 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.entrySet()booleanFollows the same general contract asMap.equals(Object).private FixedSizeMap<K, V> filter(Predicate2<? super K, ? super V> predicate) MutableMap<V, K> Return the MapIterable that is obtained by flipping the direction of this map and making the associations from value to key.voidforEachKey(Procedure<? super K> procedure) Calls theprocedurewith each key of the map.voidforEachKeyValue(Procedure2<? super K, ? super V> procedure) Calls theprocedurewith each key-value pair of the map.voidforEachValue(Procedure<? super V> procedure) Calls the procedure with each value of the map.<P> voidforEachWith(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.voidforEachWithIndex(ObjectIntProcedure<? super V> objectIntProcedure) Iterates over the iterable passing each element and the current relative int index to the specified instance of ObjectIntProcedure.(package private) KgetKey1()(package private) KgetKey2()getOnly()Returns the element if the iterable has exactly one element.inthashCode()Follows the same general contract asMap.hashCode().keySet()voidreject(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.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.intsize()Returns the number of items in this iterable.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.values()MutableMap<K, V> withKeyValue(K addKey, V addValue) This method allows mutable, fixed size, and immutable maps the ability to add elements to their existing elements.MutableMap<K, V> withoutKey(K key) This method allows mutable, fixed size, and immutable maps the ability to remove elements from their existing elements.voidMethods inherited from class AbstractMemoryEfficientMutableMap
clear, collectKeysAndValues, merge, newEmpty, newEmpty, put, putAll, remove, removeAllKeys, removeIf, removeKey, tap, updateValue, updateValueWith, withAllKeyValueArguments, withAllKeyValues, withoutAllKeysMethods inherited from class AbstractMutableMap
asSynchronized, asUnmodifiable, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectWith, flatCollect, flip, groupBy, groupByEach, groupByUniqueKey, partition, partitionWith, reject, rejectWith, replaceAll, select, selectInstancesOf, selectWith, zip, zipWithIndexMethods inherited from class AbstractMutableMapIterable
aggregateBy, countBy, countByEach, countByWith, detectOptional, getIfAbsentPut, getIfAbsentPut, getIfAbsentPutWith, getIfAbsentPutWithKey, iterator, keysView, keyValuesView, reduceBy, sumByDouble, sumByFloat, sumByInt, sumByLong, valuesViewMethods inherited from class AbstractMapIterable
allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, asLazy, chunk, contains, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, each, getFirst, getIfAbsent, getIfAbsentValue, getIfAbsentWith, getLast, 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, zip, zipWithIndexMethods inherited from interface FixedSizeMap
putAllMapIterable, withMap, withMapIterableMethods inherited from interface InternalIterable
forEachMethods inherited from interface Map
compute, computeIfAbsent, computeIfPresent, isEmpty, putIfAbsent, remove, replace, replace, replaceAllMethods inherited from interface MapIterable
detectOptional, getIfAbsent, getIfAbsentValue, getIfAbsentWith, ifPresentApply, injectIntoKeyValue, keysView, keyValuesView, parallelStream, spliterator, stream, valuesViewMethods inherited from interface MutableMap
aggregateBy, aggregateBy, aggregateInPlaceBy, asSynchronized, asUnmodifiable, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectWith, flatCollect, flatCollectWith, flip, groupBy, groupByEach, groupByUniqueKey, partition, partitionWith, reduceBy, reject, rejectWith, select, selectInstancesOf, selectWith, zip, zipWithIndexMethods inherited from interface MutableMapIterable
add, countBy, countByEach, countByWith, forEach, getIfAbsentPut, getIfAbsentPut, getIfAbsentPutWith, getIfAbsentPutWithKey, getOrDefault, putPair, sumByDouble, sumByFloat, sumByInt, sumByLongMethods inherited from interface 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, 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, reduce, reduceBy, 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 Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
key1
-
value1
-
key2
-
value2
-
-
Constructor Details
-
DoubletonMap
public DoubletonMap() -
DoubletonMap
-
-
Method Details
-
size
public int size()Description copied from interface:RichIterableReturns the number of items in this iterable. -
getKey1
K getKey1() -
getKey2
K getKey2() -
withKeyValue
Description copied from interface:MutableMapIterableThis 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:
withKeyValuein interfaceMutableMap<K,V> - Specified by:
withKeyValuein interfaceMutableMapIterable<K,V> - Overrides:
withKeyValuein classAbstractMutableMap<K,V> - See Also:
-
withoutKey
Description copied from interface:MutableMapIterableThis 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:
withoutKeyin interfaceMutableMap<K,V> - Specified by:
withoutKeyin interfaceMutableMapIterable<K,V> - Overrides:
withoutKeyin classAbstractMutableMap<K,V> - See Also:
-
clone
- Specified by:
clonein interfaceMutableMap<K,V> - Specified by:
clonein classAbstractMutableMap<K,V>
-
toImmutable
Description copied from interface:MutableMapIterableReturns an immutable copy of this map. If the map is immutable, it returns itself.- Specified by:
toImmutablein interfaceMapIterable<K,V> - Specified by:
toImmutablein interfaceMutableMapIterable<K,V> - Specified by:
toImmutablein interfaceUnsortedMapIterable<K,V> - Overrides:
toImmutablein classAbstractMutableMap<K,V>
-
containsKey
- Specified by:
containsKeyin interfaceMap<K,V> - Specified by:
containsKeyin interfaceMapIterable<K,V> - See Also:
-
containsValue
- Specified by:
containsValuein interfaceMap<K,V> - Specified by:
containsValuein interfaceMapIterable<K,V> - See Also:
-
get
-
keySet
-
values
-
entrySet
-
hashCode
public int hashCode()Description copied from interface:MapIterableFollows the same general contract asMap.hashCode(). -
equals
Description copied from interface:MapIterableFollows the same general contract asMap.equals(Object). -
toString
Description copied from class:AbstractRichIterableReturns 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:
toStringin interfaceMapIterable<K,V> - Specified by:
toStringin interfaceRichIterable<K>- Overrides:
toStringin classAbstractRichIterable<V>- Returns:
- a string representation of this collection.
- See Also:
-
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 interfaceMutableMap<K,V> - Specified by:
flipUniqueValuesin interfaceMutableMapIterable<K,V> - Specified by:
flipUniqueValuesin interfaceUnsortedMapIterable<K,V> - Overrides:
flipUniqueValuesin classAbstractMutableMapIterable<K,V>
-
forEachKeyValue
Description copied from interface:MapIterableCalls theprocedurewith 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:
forEachKeyValuein interfaceMapIterable<K,V>
-
forEachKey
Description copied from interface:MapIterableCalls theprocedurewith 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:
forEachKeyin interfaceMapIterable<K,V> - Overrides:
forEachKeyin classAbstractMapIterable<K,V>
-
forEachValue
Description copied from interface:MapIterableCalls 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:
forEachValuein interfaceMapIterable<K,V> - Overrides:
forEachValuein classAbstractMapIterable<K,V>
-
forEachWithIndex
Description copied from interface:InternalIterableIterates 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:
forEachWithIndexin interfaceInternalIterable<K>- Overrides:
forEachWithIndexin classAbstractMapIterable<K,V>
-
forEachWith
Description copied from interface:InternalIterableThe 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:
forEachWithin interfaceInternalIterable<K>- Overrides:
forEachWithin classAbstractMapIterable<K,V>
-
writeExternal
- Specified by:
writeExternalin interfaceExternalizable- Throws:
IOException
-
readExternal
- Specified by:
readExternalin interfaceExternalizable- Throws:
IOExceptionClassNotFoundException
-
select
Description copied from interface:MapIterableFor 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:
selectin interfaceMapIterable<K,V> - Specified by:
selectin interfaceMutableMap<K,V> - Specified by:
selectin interfaceMutableMapIterable<K,V> - Specified by:
selectin interfaceUnsortedMapIterable<K,V> - Specified by:
selectin classAbstractMemoryEfficientMutableMap<K,V>
-
collectValues
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<City, String> collected = peopleByCity.collectValues((City city, Person person) -> person.getFirstName() + " " + person.getLastName());- Specified by:
collectValuesin interfaceMapIterable<K,V> - Specified by:
collectValuesin interfaceMutableMap<K,V> - Specified by:
collectValuesin interfaceMutableMapIterable<K,V> - Specified by:
collectValuesin interfaceUnsortedMapIterable<K,V> - Specified by:
collectValuesin classAbstractMemoryEfficientMutableMap<K,V>
-
collectKeysUnique
public <R> FixedSizeMap<R,V> collectKeysUnique(Function2<? super K, ? super V, ? extends R> function) 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 keys projected from the function rather than the original keys.- Specified by:
collectKeysUniquein interfaceMapIterable<K,V> - Specified by:
collectKeysUniquein interfaceMutableMap<K,V> - Specified by:
collectKeysUniquein interfaceMutableMapIterable<K,V> - Specified by:
collectKeysUniquein classAbstractMemoryEfficientMutableMap<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 interfaceMutableMap<K,V> - Specified by:
collectin interfaceMutableMapIterable<K,V> - Specified by:
collectin interfaceUnsortedMapIterable<K,V> - Specified by:
collectin classAbstractMemoryEfficientMutableMap<K,V>
-
reject
Description copied from interface:MapIterableFor 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:
rejectin interfaceMapIterable<K,V> - Specified by:
rejectin interfaceMutableMap<K,V> - Specified by:
rejectin interfaceMutableMapIterable<K,V> - Specified by:
rejectin interfaceUnsortedMapIterable<K,V> - Specified by:
rejectin classAbstractMemoryEfficientMutableMap<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> - Overrides:
detectin classAbstractMutableMapIterable<K,V>
-
filter
-
getOnly
Description copied from interface:RichIterableReturns the element if the iterable has exactly one element. Otherwise, throwIllegalStateException.- Specified by:
getOnlyin interfaceRichIterable<K>- Overrides:
getOnlyin classAbstractMapIterable<K,V> - Returns:
- an element of an iterable.
-