Kotlin:如何将列表转换为与列表映射?
我有一个如下的列表{(“a”,1),(“b”,2),(“c”,3),(“a”,4)}
我想把它转换为如下所示的列表图{(“a”(1,4)),(“b”,(2)),(“c”,(3)))}
即对于一个,我们有一个1和4的列表,因为关键是一样的。
如何在Kotlin中将列表转换为地图的答案? 只显示独特的价值(而不是像我的重复)。
我在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) { 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
值
您可以alpha
对列表进行分组,然后将值映射到List
:
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 .groupBy { it.alpha } .mapValues { it.value.map { it.num } } println(mapOfList)
- 将可空types转换为不可空types?
- Kotlin绑定视图:如何区分视图variables和局部variables?
- 我需要知道为什么? 如果我把这行改为“println(name + two)”错误解决?
- Kotlin平台types和generics
- 使用Gradle编译Kotlin jar时,在META-INF中生成无效的元数据
- SpringBoot ArrayIndexOutOfBoundsException MethodParameter.getGenericParameterType
- 将Java Parcel创建者代码转换为Kotlin
- 为什么不在Kotlin的Android 4.x下运行应用程序?
- SpringBoot + Jackson + Kotlin数据类:字段注释被忽略