获取Groupby的值



这一定是一个非常愚蠢的问题,但是在我发现的教程中,它们通常打印一个集合的所有值。如果我只想要与键相对应的值怎么办?抱歉,我是Kotlin的新手,一般是OOP。

所以:

val words = listOf("a", "abc", "ab", "def", "abcd")
val byLength = words.groupBy { it.length }
println(byLength.keys) // [1, 3, 2, 4]
println(byLength.values) // [[a], [abc, def], [ab], [abcd]]

如何仅访问[abc, def]给定关键3

println(byLength[3])

和访问abcdef您可以做

val tab = byLength[3]!!
println(tab[0]) // abc
println(tab[1]) // def

groupBy返回地图。您使用[]操作员从地图中获得值:

byLength[3]

byLength[3]

这就是您将其索引到Kotlin中的地图。

groupBy返回 Map,在这种情况下是 Map<Int, List<String>>。如果您需要与给定密钥关联的值,则可以使用get方法(也可以称为操作员(:

val v1: List<String>? = byLength.get(3)
val v2: List<String>? = byLength[3]

另外,有getOrDefault可为您提供不可删除的结果:

val v3: List<String> = byLength.getOrDefault(3, emptyList())

最新更新