Kotlin 如何按值对对象进行分组
我有一个像这样的对象:Kotlin 如何按值对对象进行分组,kotlin,Kotlin,我有一个像这样的对象: data class Product(val name: String, val maker: List<String>) [{"name":"Car", "maker":["Audi", "BMW"]}, {"name":"Motorcycle", "maker":["Yamaha","Kawasaki"]} ] 实际列表由大量数据组成,但是可以信任name字段按分组。 对于我来说,映射这些数据的方法是什么,以便最
data class Product(val name: String,
val maker: List<String>)
[{"name":"Car", "maker":["Audi", "BMW"]},
{"name":"Motorcycle", "maker":["Yamaha","Kawasaki"]}
]
实际列表由大量数据组成,但是可以信任name
字段按分组。
对于我来说,映射这些数据的方法是什么,以便最终结果是这样的:
data class Product(val name: String,
val maker: List<String>)
[{"name":"Car", "maker":["Audi", "BMW"]},
{"name":"Motorcycle", "maker":["Yamaha","Kawasaki"]}
]
只需使用
groupBy{…}
,然后处理组映射条目,将其替换为单个产品
:
val result = products.groupBy { it.name }.entries.map { (name, group) ->
Product(name, group.flatMap { it.maker })
}