获取groupBy的值

时间:2018-04-24 07:20:52

标签: android group-by kotlin

这一定是一个非常愚蠢的问题,但在我发现的教程中,它们通常会打印一组的所有值。如果我只想要与键对应的值,该怎么办?对不起,我是Kotlin和OOP的新手。

例如:

function() {
var element = document.querySelector('*[id^="price"]');
var price = element.innerHTML.match(/\d*\.\d*/)[0];
return price;
}

如果只有密钥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]

4 个答案:

答案 0 :(得分:1)

groupBy会返回一张地图。您可以使用[]运算符从地图中获取值:

byLength[3]

答案 1 :(得分:1)

byLength[3]

这是您在Kotlin中索引地图的方式。

答案 2 :(得分:1)

在这种情况下,

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())

答案 3 :(得分:1)

println(byLength[3])

并且可以访问abcdef

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