list - 如何在 Kotlin 中并行迭代两个列表?
问题描述
如何在 Kotlin 中迭代两个列表?我想将一个列表中的每个值分配给textview
另一个列表中的等价物,例如 1 : 1 分配。
类似下面的东西允许并行迭代,但它会被执行两次:
data class Total(val area : Double)
private fun assign(
allArea: List<Double>, allTextViews : List<TextView>
) : Total {
var totalArea = 0.0
allArea.forEach { double ->
val value : Double = double
totalArea += value
allTextViews.forEach { textView ->
textView.text = value.toString()
}
}
return Total(totalArea)
}
assign(allStates = listOf(
a,
b
),
allTextViews = listOf(
textView1,
textView2)
)
解决方案
尝试压缩两个列表:
fun main() {
val list1 = listOf(1,2,3)
val list2 = listOf(4,5,6)
list1.zip(list2).forEach {pair ->
println(pair.component1() + pair.component2())
}
}
这打印:
5
7
9
在您的情况下,给定allArea
列表并allTextViews
具有相同的长度,您可以压缩它们并获取第一个组件将是 type 的Double
对,第二个是 typeTextView
推荐阅读
- python - 如何计算按相同特定属性分组的两个卷中两个单元格之间的日期时间差异?
- javascript - 嵌套循环是否总是在最后一次迭代后重置?
- image - 图像塑造问题:三维图像
- angular - Homestead .htaccess 使用 Angular 7 重写规则
- bash - 如何将sha1sum总和与文件进行比较
- c# - 从应用程序和程序中删除注册表项
- javascript - 使用 Object.freeze 和 object.unfreeze 减少具有大量表数据行的反应性页面中的内存膨胀
- c++ - POSIX 信号量函数 sem_post() 不唤醒 sem_wait() 问题
- java - 如何并行运行 EJB 调度程序
- r - 如何创建一个新列以在 str_split 之后插入数据