groupBy<K> method

Map<K, Set<E>> groupBy<K>(
  1. K key(
    1. E element
    )
)

Returns a new set with elements grouped by the given key function.

Example:

final set = {'apple', 'banana', 'cherry', 'avocado'};
print(set.groupBy((e) => e[0]));
// {a: {apple, avocado}, b: {banana}, c: {cherry}}

Implementation

Map<K, Set<E>> groupBy<K>(K Function(E element) key) {
  final result = <K, Set<E>>{};
  for (final element in this) {
    final k = key(element);
    (result[k] ??= {}).add(element);
  }
  return result;
}