gpt4 book ai didi

Kotlin:如何将列表转换为带有列表的映射?

转载 作者:IT老高 更新时间:2023-10-28 13:34:43 28 4
gpt4 key购买 nike

我有一个如下列表{("a", 1), ("b", 2), ("c", 3), ("a", 4)}

我想将其转换为如下列表的 map {("a"(1, 4)), ("b", (2)), ("c", (3)))}

即对于 a,我们有一个 1 和 4 的列表,因为键是相同的。

答案在 How to convert List to Map in Kotlin?只显示唯一的值(value)(而不是像我的一样重复)。

我在 Kotlin 中尝试过 associateBy

    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 中做到这一点?

最佳答案

代码

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)
}

输出

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

工作原理

  • 首先获取列表
  • 它将 Combine 的 alpha 值分组到它们的 num

关于Kotlin:如何将列表转换为带有列表的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47046263/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com