UP | HOME

分组

Kotlin 标准库提供用于对集合元素进行分组的扩展函数。 基本函数 groupBy() 使用一个 lambda 函数并返回一个 Map

还可以使用第二个 lambda 参数(值转换函数)调用 groupBy()。 在带有两个 lambda 的 groupBy() 结果 Map 中,由 keySelector 函数生成的键映射到值转换函数的结果,而不是原始元素

fun main() {
//sampleStart
    val numbers = listOf("one", "two", "three", "four", "five")

    println(numbers.groupBy { it.first().toUpperCase() })
    println(numbers.groupBy(keySelector = { it.first() }, valueTransform = { it.toUpperCase() }))
//sampleEnd
}

如果要对元素进行分组,然后一次将操作应用于所有分组,请使用 groupingBy() 函数。 它返回一个 Grouping 类型的实例

  通过 Grouping 实例,可以以一种 惰性 的方式将操作应用于所有组:这些分组实际上是刚好在执行操作前构建的

Grouping 支持以下操作:

fun main() {
//sampleStart
    val numbers = listOf("one", "two", "three", "four", "five", "six")
    println(numbers.groupingBy { it.first() }.eachCount())
//sampleEnd
}
Next:部分 Previous:加减 Home:集合