我的 list 如下

我想把它转换成下面的列表 map

i.e. for a, we have a list of 1 and 4, since the key is the same.

答案是

I tried associateBy in Kotlin

    data class Combine(val alpha: String, val num: Int)
    val list = arrayListOf(Combine("a", 1), Combine("b", 2), Combine("c", 3), Combine("a", 4))
    val mapOfList = list.associateBy ( {it.alpha}, {it.num} )
    println(mapOfList)

但似乎不管用.我怎么能在Kotlin 这么做呢?

推荐答案

Code

fun main(args: Array<String>) {
    data class Combine(val alpha: String, val num: Int)
    val list = arrayListOf(Combine("a", 1), Combine("b", 2), Combine("c", 3), Combine("a", 4))
    val mapOfList = list.associateBy ( {it.alpha}, {it.num} )
    println(mapOfList)
    val changed = list
        .groupBy ({ it.alpha }, {it.num})
    println(changed)
}

Output

{a=4, b=2, c=3}
{a=[1, 4], b=[2], c=[3]}

How it works

  • 首先,它需要列表
  • 它根据阿尔法值将Combine分为num

Kotlin相关问答推荐

Kotlin:如何将.not()替换为!'# 39;?

导入org.gradle.jvm.toolchain.internal.JavaToolchainFactory未解析引用:Java工具链工厂

使用数据存储首选项Kotlin Jetpack Compose

Spring Boot kotlin协程不能并行运行

如何修改muableStateMapOf的值?

如何使用 Kotlin Maven 更改 Minecraft 插件中的 Shulker GUI 标题

列表在 android WebView 中没有正确迭代

Kotlin Path.useLines { } - 如何不获取 IOException("Stream closed")?

Kotlin 条件格式字符串

TestContainers PostgreSQLContainer 与 Kotlin 单元测试:Not enough information to infer type variable SELF

Kotlin JS JSON 反序列化

为什么 Kotlin 需要函数引用语法?

包括登录Elvis operator?

如何从 Firestore 查询中排除元素?

从 Spring WebFlux 返回 Flux 返回一个字符串而不是 JSON 中的字符串数组

封闭 lambda 的隐式参数被shadowed

Android 与 Kotlin - 如何使用 HttpUrlConnection

如何序列化/反序列化Kotlin密封类?

Kotlin var lazy init

Kotlin中对象和数据类的区别是什么?