You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin流操作中如何在all步骤复用map的中间集合结果?

Kotlin中复用map后中间集合的实现方法

你需要在all判断中使用map操作后的完整中间集合,这里提供两种实用的实现方式:

方式一:将中间结果存入变量

直接把map的结果赋值给一个变量,后续操作就可以直接引用这个变量:

val coordinates: Array<IntArray> = arrayOf(intArrayOf(1, 2), intArrayOf(1, 3), intArrayOf(1, 4))

// 先保存map后的中间集合
val mappedCoordinates = coordinates.map { it[0] }
// 使用中间集合完成all判断
val allMatchFirst = mappedCoordinates.all { it == mappedCoordinates[0] }

方式二:用run函数链式处理

如果不想额外声明变量,可以借助run函数,在其作用域内直接访问map返回的集合(即lambda中的this):

val coordinates: Array<IntArray> = arrayOf(intArrayOf(1, 2), intArrayOf(1, 3), intArrayOf(1, 4))

val allMatchFirst = coordinates.map { it[0] }.run {
    // this指向map后的集合,first()等价于this[0]
    all { it == first() }
}

空集合兼容处理(可选)

如果coordinates可能为空,建议用firstOrNull()避免抛出异常,根据业务需求调整空集合的返回逻辑:

val allMatchFirst = coordinates.map { it[0] }.run {
    val firstElement = firstOrNull() ?: return@run true // 空集合默认返回true,可按需修改
    all { it == firstElement }
}

内容的提问来源于stack exchange,提问作者asanelder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:31:14