我想将一个列表中的所有元素与另一个列表中的所有元素组合在一起,以获得所有可能的对.

当然,我们可以在循环中完成此操作(未经过测试):

val list1 = listOf(1, 2, 3)
val list2 = listOf('A', 'B', 'C')

val result = mutableListOf<Pair<Int, Char>>()

for (item1 in list1) {
    for (item2 in list2) {
        result.add(Pair(item1, item2))
    }
}

println(result)

有没有更好的具有像zip这样的内置功能的解决方案?

推荐答案

未经测试,但我想它应该会奏效:

val result = list1.flatMap { item1 ->
    list2.map { item2 ->
        Pair(item1, item2)
    }
}

Kotlin相关问答推荐

用普通Kotlin理解Gradle的Kotlin DSL'""

如何在Jetpack Compose中从领域查询中读取数据?

某些公共函数显然不能在类实例上访问;Klaxon示例

仅某些用户出现 DateTimeFormatter 错误

有没有办法在 jetpack compose 中将 TextField 密码点图标增加得更大?

Kotlin 函数中接收者和参数的类型相同

根据字符串值动态过滤数组列表 - kotlin

AIDL 中的 Parcelize 注释:Incompatible types: Object cannot be converted to MyCustomObject

在 kotlin 中写入 parcer 可空值

如何设置两列recyclerview?

作为 Kotlin 中的函数的结果,如何从 Firestore 数据库返回列表?

如何在 Spring WebFlux 的响应正文中流式传输二进制数据

使用主构造函数时使用Kotlin getter/setter

spring.config.location 在 Spring Boot 2.0.0 M6 上不起作用

Kotlin Android:属性委托必须有一个 'getValue(DashViewModel, KProperty*>)' 方法

通过在 kotlin-gradle 中使用子项目Unresolved reference: implementation

可以在函数参数中使用解构吗?

如何计算Kotlin中的百分比

有没有办法在Kotlin中设置一个私有常量

在多平台子元素中使用kapt