|
Groovy JDK |
Method Summary | |
---|---|
boolean
|
any(Closure)
Iterates over the entries of a map, and checks whether a predicate is valid for at least one entry. |
boolean
|
asBoolean()
Coerce a map instance to a boolean value. |
Map
|
asImmutable()
A convenience method for creating an immutable map. |
Map
|
asSynchronized()
A convenience method for creating a synchronized Map. |
Object
|
asType(Class)
Coerces this map to the given type, using the map's keys as the public method names, and values as the implementation. |
Collection
|
collect(Collection, Closure)
Iterates through this Map transforming each entry into a new value using the closure as a transformer, returning a list of transformed values. |
List
|
collect(Closure)
Iterates through this Map transforming each entry into a new value using the closure as a transformer, returning a list of transformed values. |
Map
|
each(Closure)
Allows a Map to be iterated through using a closure. |
Map
|
eachWithIndex(Closure)
Allows a Map to be iterated through using a closure. |
boolean
|
every(Closure)
Iterates over the entries of a map, and checks whether a predicate is valid for all entries. |
Map$Entry
|
find(Closure)
Finds the first entry matching the closure condition. |
Map
|
findAll(Closure)
Finds all entries matching the closure condition. |
Object
|
get(Object, Object)
Looks up an item in a Map for the given key and returns the value - unless there is no entry for the given key in which case add the default value to the map and return that. |
Object
|
getAt(Object)
Support the subscript operator for a Map. |
Map
|
groupBy(Closure)
Groups the members of a map into sub maps determined by the supplied mapping closure. |
Map
|
groupEntriesBy(Closure)
Groups all map entries into groups determined by the supplied mapping closure. |
Map
|
leftShift(Map$Entry)
Overloads the left shift operator to provide an easy way to append Map.Entry values to a Map. |
Map
|
plus(Map)
Returns a new Map containing all entries from left and right ,
giving precedence to right .
|
Map
|
plus(Collection)
Returns a new Map containing all entries from self and entries ,
giving precedence to entries .
|
Map
|
putAll(Collection)
Provides an easy way to append multiple Map.Entry values to a Map. |
Object
|
putAt(Object, Object)
A helper method to allow lists to work with subscript operators |
Map
|
sort(Closure)
Sorts the given map into a sorted map using the closure as a comparator. |
SpreadMap
|
spread()
Synonym for Map#toSpreadMap. |
Map
|
subMap(Collection)
Creates a sub-Map containing the given keys. |
String
|
toMapString()
Returns the string representation of this map. |
SpreadMap
|
toSpreadMap()
Returns a new SpreadMap from this map.
|
Map
|
withDefault(Closure)
Wraps a map using the delegate pattern with a wrapper that intercepts all calls to get(key) .
|
Method Detail |
---|
public boolean any(Closure)
assert [2:3, 4:5, 5:10].any { key, value -> key * 2 == value } assert ![2:3, 4:5, 5:10].any { entry -> entry.key == entry.value * 2 }
closure
- the 1 or 2 arg closure predicate used for matching.public boolean asBoolean()
assert [:] as Boolean == false assert [a:2] as Boolean == true
public Map asImmutable()
public Map asSynchronized()
public Object asType(Class)
clazz
- the target type.public Collection collect(Collection, Closure)
assert [a:1, b:2].collect( [] as HashSet ) { key, value -> key*value } == ["a", "bb"] as Set assert [3:20, 2:30].collect( [] as HashSet ) { entry -> entry.key * entry.value } == [60] as Set
collection
- the Collection to which the mapped values are added.closure
- the closure used for mapping, which can take one (Map.Entry) or two (key, value) parameters.public List collect(Closure)
assert [a:1, b:2].collect { key, value -> key*value } == ["a", "bb"] assert [3:20, 2:30].collect { entry -> entry.key * entry.value } == [60, 60]
closure
- the closure used to map each element of the collection.public Map each(Closure)
def result = "" [a:1, b:3].each { key, value -> result += "$key$value" } assert result == "a1b3"
def result = "" [a:1, b:3].each { entry -> result += entry } assert result == "a=1b=3"
closure
- the 1 or 2 arg closure applied on each entry of the map.public Map eachWithIndex(Closure)
def result = "" [a:1, b:3].eachWithIndex { key, value, index -> result += "$index($key$value)" } assert result == "0(a1)1(b3)"
def result = "" [a:1, b:3].eachWithIndex { entry, index -> result += "$index($entry)" } assert result == "0(a=1)1(b=3)"
closure
- a 2 or 3 arg Closure to operate on each item.public boolean every(Closure)
def map = [a:1, b:2.0, c:2L] assert !map.every { key, value -> value instanceof Integer } assert map.every { entry -> entry.value instanceof Number }
closure
- the 1 or 2 arg Closure predicate used for matching.public Map$Entry find(Closure)
assert [a:1, b:3].find { it.value == 3 }.key == "b"
closure
- a 1 or 2 arg Closure condition.public Map findAll(Closure)
If the self
map is one of TreeMap, LinkedHashMap, Hashtable
or Properties, the returned Map will preserve that type, otherwise a HashMap will
be returned.
def result = [a:1, b:2, c:4, d:5].findAll { it.value % 2 == 0 } assert result.every { it instanceof Map.Entry } assert result*.key == ["b", "c"] assert result*.value == [2, 4]
closure
- a 1 or 2 arg Closure condition applying on the entries.public Object get(Object, Object)
def map=[:] map.get("a", []) << 5 assert map == [a:[5]]
key
- the key to lookup the value of.defaultValue
- the value to return and add to the map for this key if
there is no entry for the given key.public Object getAt(Object)
def map = [a:10] assert map["a"] == 10
key
- an Object as a key for the map.public Map groupBy(Closure)
If the self
map is one of TreeMap, LinkedHashMap, Hashtable
or Properties, the returned Map will preserve that type, otherwise a HashMap will
be returned.
def result = [a:1,b:2,c:3,d:4,e:5,f:6].groupBy { it.value % 2 } assert result == [0:[b:2, d:4, f:6], 1:[a:1, c:3, e:5]]
closure
- a closure mapping entries on keys.public Map groupEntriesBy(Closure)
def result = [a:1,b:2,c:3,d:4,e:5,f:6].groupBy { it.value % 2 } assert result[0]*.key == ["b", "d", "f"] assert result[1]*.value == [1, 3, 5]
closure
- a 1 or 2 arg Closure mapping entries on keys.public Map leftShift(Map$Entry)
entry
- a Map.Entry to be added to the Map..public Map plus(Map)
Map
containing all entries from left
and right
,
giving precedence to right
. Any keys appearing in both Maps
will appear in the resultant map with values from the right
operand. If the left
map is one of TreeMap, LinkedHashMap, Hashtable
or Properties, the returned Map will preserve that type, otherwise a HashMap will
be returned.
Roughly equivalent to Map m = new HashMap(); m.putAll(left); m.putAll(right); return m;
but with some additional logic to preserve the left
Map type for common cases as
described above.
assert [a:10, b:20] + [a:5, c:7] == [a:5, b:20, c:7]
right
- a Map.public Map plus(Collection)
Map
containing all entries from self
and entries
,
giving precedence to entries
. Any keys appearing in both Maps
will appear in the resultant map with values from the entries
operand. If self
map is one of TreeMap, LinkedHashMap, Hashtable
or Properties, the returned Map will preserve that type, otherwise a HashMap will
be returned.
entries
- a Collection of Map.Entry items to be added to the Map..public Map putAll(Collection)
entries
- a Collection of Map.Entry items to be added to the Map..public Object putAt(Object, Object)
key
- an Object as a key for the map.value
- the value to put into the map.public Map sort(Closure)
def map = [a:5, b:3, c:6, d:4].sort { a, b -> a.value <=> b.value } assert map == [b:3, d:4, a:5, c:6]
closure
- a Closure used as a comparator.public SpreadMap spread()
public Map subMap(Collection)
assert [1:10, 2:20, 4:40].subMap( [2, 4] ) == [2:20, 4:40]
keys
- a Collection of keys.public String toMapString()
[one:1, two:2, three:3]
.public SpreadMap toSpreadMap()
SpreadMap
from this map.
For examples, if there is defined a function like as
, then all of the following three have the same meaning.def fn(a, b, c, d) { return a + b + c + d }
println fn(a:1, [b:2, c:3].toSpreadMap(), d:4) println fn(a:1, *:[b:2, c:3], d:4) println fn(a:1, b:2, c:3, d:4)
public Map withDefault(Closure)
get(key)
. If an unknown key is found, a default value will be
stored into the Map before being returned. The default value stored will be the
result of calling the supplied Closure with the key as the parameter to the Closure.
Example usage:
def map = [a:1, b:2].withDefault{ k -> k.toCharacter().isLowerCase() ? 10 : -10 } def expected = [a:1, b:2, c:10, D:-10] assert expected.every{ e -> e.value == map[e.key] } def constMap = [:].withDefault{ 42 } assert constMap.foo == 42 assert constMap.size() == 1
init
- a Closure which is passed the unknown key.
|
Groovy JDK |