我有一个看起来像这样的对象:
data class Product(val name: String,
val maker: List<String>)
Run Code Online (Sandbox Code Playgroud)
目前,我从后端收到的响应(无法更改)如下:
[{"name":"Car", "maker":["Audi"]},
{"name":"Car", "maker":["BMW"]},
{"name":"Motorcycle", "maker":["Yamaha"]},
{"name":"Motorcycle", "maker":["Kawasaki"]}
]
Run Code Online (Sandbox Code Playgroud)
实际列表包含大量数据,但name可以信任该字段进行分组.我可以用什么方式映射这些数据,以便最终结果是这样的:
[{"name":"Car", "maker":["Audi", "BMW"]},
{"name":"Motorcycle", "maker":["Yamaha","Kawasaki"]}
]
Run Code Online (Sandbox Code Playgroud)
只需使用groupBy { ... }然后处理组映射条目,将其替换为单个Product:
val result = products.groupBy { it.name }.entries.map { (name, group) ->
Product(name, group.flatMap { it.maker })
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1806 次 |
| 最近记录: |