groupBy<K> method
Groups elements by a specific key and returns a map of key to list of elements
Implementation
Map<K, List<T>> groupBy<K>(K Function(T element) keyExtractor) {
final Map<K, List<T>> grouped = {};
for (var element in this) {
final key = keyExtractor(element);
grouped.putIfAbsent(key, () => []).add(element);
}
return grouped;
}