zoltu
01/17/2016, 11:23 PMpublic inline fun <T, K, V> Iterable<T>.groupBy(keySelector: (T) -> K, valueSelector: (T) -> V): Map<K, List<V>> {
val map = LinkedHashMap<K, ArrayList<V>>()
for (element in this) {
val key = keySelector(element)
val value = valueSelector(element)
val list = map.getOrPut(key) { ArrayList<V>() }
list.plus(value)
}
return map
}