小编use*_*019的帖子

使用 lambda forEach Kotlin 迭代列表

我有一个包含 30 个随机数的列表,它们对应于 8 种颜色中的一种,我需要遍历 8 种颜色(或 30 个数字)并找到每种颜色出现的次数。我需要使用 lambdas 和函数式编程来做到这一点,所以没有传统的 for 循环。

val iterator = colours.toList().iterator()

iterator.forEach{

    println("$it count: " + (numbers
            .map{a -> colours[a]}
            .count{it == ("$it")}))
}
Run Code Online (Sandbox Code Playgroud)

目前的问题是我的计数输出仅为 50,而不是颜色出现的具体次数。

如果我这样做:

println("Red count:" +    (numbers
        .map{a -> colours[a]}
        .count{it ==  ("red")}))
Run Code Online (Sandbox Code Playgroud)

它输出正确的数字,但不是循环。

它输出什么:

green count: 50 

red count: 50
Run Code Online (Sandbox Code Playgroud)

它应该输出什么(例如)

green count:9

red count:3
Run Code Online (Sandbox Code Playgroud)

提前致谢

lambda android kotlin

1
推荐指数
1
解决办法
4903
查看次数

标签 统计

android ×1

kotlin ×1

lambda ×1