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