A collection which maps keys to items, where a key
can map to at most one item. Each such mapping may be
represented by an Entry
. Thus, each distinct key
occurs in at most one entry. Two
non-identical keys are considered
distinct only if they are unequal, according to their own
definition of value equality.
A Map
is a Collection
of its Entry
s, and a
Correspondence
from keys to items.
A new Map
may be obtained by calling the function
map()
.
value settings = map { "lang"->"en_AU", "loc"->"ES" };
The emptyMap
is a Map
with no entries.
The presence of an entry in a map may be tested using the
in
operator:
if ("lang"->"en_AU" in settings) { ... }
The entries of the map may be iterated using for
:
for (key->item in settings) { ... }
The item for a key may be obtained using the item operator:
String lang = settings["lang"] else "en_US";
An implementation of Map
may compare keys for equality
using Object.equals()
or Comparable.compare()
.
no type hierarchy
Attributes | |
coalescedMap | Source Codeshared default Map<Key,Item&Object> coalescedMap A map with every entry of this map whose item is non-null. See also defaultNullItems() |
distinct | Source Codeshared actual {<Key->Item>*} distinct A stream that produces every element produced by this stream exactly once. Duplicate elements of this stream are eliminated. Two elements are considered distinct unless they are both null, or unless they are both non-null and equal. For example: String("hello world".distinct) is the string This is a lazy operation and the resulting stream reflects changes to this stream. Refines Iterable.distinct |
hash | Source Codeshared actual default Integer hash The hash value of the value, which allows the value to be an element of a hash-based set or key of a hash-based map. Implementations must respect the constraint that:
Therefore, a class which refines In general, Note that when executing on a Java Virtual Machine, the
64-bit Refines Object.hash |
items | Source Codeshared default Collection<Item> items A |
keys | Source Codeshared actual default Collection<Key> keys A Refines Correspondence.keys |
Inherited Attributes |
Attributes inherited from: Object |
Attributes inherited from: Collection<Element> |
Attributes inherited from: Correspondence<Key,Item> |
Attributes inherited from: Iterable<Element,Absent> |
Methods | |
clone | Source Codeshared formal Map<Key,Item> clone() A shallow copy of this map, that is, a map with the same entries as this map, which do not change if the entries in this map change. Refines Collection.clone |
contains | Source Codeshared actual default Boolean contains(Object entry) See also defines() |
defaultNullElements | Source Codeshared actual {<Key->Item>*} defaultNullElements<Default>(Default defaultValue) Produces a stream containing the elements of this
stream, in the order in which they occur in this stream,
after replacing every For example, the expression { "123", "abc", "456" }.map(parseInteger).defaultNullElements(0) results in the stream Refines Iterable.defaultNullElements |
defaultNullItems | Source Codeshared default Map<Key,Item&Object|Default> defaultNullItems<Default>(Default defaultValue) Produces a map containing the elements of this map,
after replacing every Parameters:
See also coalescedMap |
defines | Source Codeshared formal Boolean defines(Object key) Determines if there is an entry in this map with the
given See also contains() Refines Correspondence.defines |
equals | Source Codeshared actual default Boolean equals(Object that) Two maps are considered equal iff they have the same
entry sets. The entry set of a Refines Object.equals |
filterKeys | Source Codeshared default Map<Key,Item> filterKeys(Boolean filtering(Key key)) Produces a map by applying a |
get | Source Codeshared formal Item? get(Object key) Returns the item of the entry with the given See also getOrDefault() Refines Correspondence.get |
getOrDefault | Source Codeshared default Item|Default getOrDefault<Default>(Object key, Default default) Returns the item of the entry with the given For maps with non-null items, the expression: map.getOrDefault(key, def) is equivalent to this common idiom: map[key] else def However, when the map has null items, Note that high-quality implementations of See also get() |
inverse | Source Codeshared default Map<Item&Object,[Key+]> inverse() Invert this map, producing a new immutable map where the keys of the new map are the non-null items of this map, and each item of the new map is a nonempty sequence of keys of this map. For example, the expression: { "fee", "fi", "fo", "fum", "foo" } .tabulate(String.size) .inverse() produces the map
The order of keys in the key sequences is not defined and should not be relied upon. This is an eager operation, and the resulting map does not reflect changes to this map. |
mapItems | Source Codeshared default Map<Key,Result> mapItems<Result>(Result mapping(Key key, Item item)) Produces a map with the same |
patch | Source Codeshared default Map<Key|OtherKey,Item|OtherItem> patch<OtherKey, OtherItem>(Map<OtherKey,OtherItem> other) Produces a map whose keys are the union of the keys of this map, with the keys of the given map. For any given key in the resulting map, its associated item is the item associated with the key in the given map, if any, or the item associated with the key in this map otherwise. That is, for any map.patch(other)[key] == other.getOrDefault(key, map[key]) This is a lazy operation producing a view of this map and the given map. |
Inherited Methods |
Methods inherited from: Object |
Methods inherited from: Category<Element> |
Methods inherited from: Collection<Element> |
Methods inherited from: Correspondence<Key,Item> |
Methods inherited from: Iterable<Element,Absent> any() , by() , chain() , collect() , contains() , count() , defaultNullElements() , each() , every() , filter() , find() , findLast() , flatMap() , fold() , follow() , frequencies() , getFromFirst() , group() , indexes() , interpose() , iterator() , locate() , locateLast() , locations() , longerThan() , map() , max() , narrow() , partition() , product() , reduce() , repeat() , scan() , select() , sequence() , shorterThan() , skip() , skipWhile() , sort() , spread() , summarize() , tabulate() , take() , takeWhile() |