Grouping<K extends Hashable, V> class
Constructors
new Grouping(Iterable<V> source, [Func1 keyFunc = null]) #
Grouping(Iterable<V> source, [Func1<V, K> keyFunc = null]) { if(keyFunc == null) { keyFunc = (v) => v; } for (final V value in source) { final K key = keyFunc(value); final values = _values.putIfAbsent(key, () => new List<V>()); values.add(value); } }
Methods
bool operator ==(other) #
The equality operator.
The default behavior for all Object
s is to return true if and
only if this
and
other are the same object.
If a subclass overrides the equality operator it should override
the hashCode
method as well to maintain consistency.
bool operator ==(other) => identical(this, other);
List<V> operator [](K key) #
Returns the value for the given
key or null if
key is not
in the map. Because null values are supported, one should either
use containsKey to distinguish between an absent key and a null
value, or use the putIfAbsent
method.
List<V> operator [](K key) => _values[key];
bool containsKey(K key) #
Returns whether this map contains the given key.
bool containsKey(K key) => _values.containsKey(key);
void forEach(void f(K key, List<V> value)) #
Applies f to each {key, value} pair of the map.
void forEach(void f(K key, List<V> value)) => _values.forEach(f);
Collection<K> getKeys() #
Returns a collection containing all the keys in the map.
Collection<K> getKeys() => _values.getKeys();
Enumerable<V> getValues() #
Enumerable<V> getValues() => $(_values.getValues()).selectMany((a) => a);
int hashCode() #
Get a hash code for this object.
All objects have hash codes. Hash codes are guaranteed to be the
same for objects that are equal when compared using the equality
operator ==
. Other than that there are no guarantees about
the hash codes. They will not be consistent between runs and
there are no distribution guarantees.
If a subclass overrides hashCode
it should override the
equality operator as well to maintain consistency.
external int hashCode();
bool get isEmpty() #
Returns true if there is no {key, value} pair in the map.
bool get isEmpty => _values.isEmpty();
int get length() #
The number of {key, value} pairs in the map.
int get length => _values.length;
noSuchMethod(String name, List args) #
noSuchMethod
is invoked when users invoke a non-existant method
on an object. The name of the method and the arguments of the
invocation are passed to noSuchMethod
. If noSuchMethod
returns a value, that value becomes the result of the original
invocation.
The default behavior of noSuchMethod
is to throw a
noSuchMethodError
.
external Dynamic noSuchMethod(String name, List args);
Type get runtimeType() #
A representation of the runtime type of the object.
external Type get runtimeType;
String toString() #
Returns a string representation of this object.
String toString() => _values.toString();