Moh*_*nIT 0 collections group-by kotlin
是否可以将以下嵌套转换groupingBy为 Kotlin Collections 等效项?
运行此代码: https: //rextester.com/IYJ63609
fun main(args: Array<String>) {
data class Person(val name: String, val city: String, val phone: String)
val people = listOf(
Person("John", "Boston", "+1-888-123456"),
Person("Svyatoslav", "Saint-Petersburg", "+7-999-456700"),
Person("Svyatoslav", "Saint-Petersburg", "+7-999-456789"),
Person("Vasilisa", "Saint-Petersburg", "+7-999-123456"))
val phoneBook = people.stream().collect(
java.util.stream.Collectors.groupingBy(Person::city,
java.util.stream.Collectors.groupingBy(Person::name)
)
)
println(phoneBook)
}
Run Code Online (Sandbox Code Playgroud)
顺序有点不同,但是是的,这是可能的:
fun main(args: Array<String>) {
data class Person(val name: String, val city: String, val phone: String)
val people = listOf(
Person("John", "Boston", "+1-888-123456"),
Person("Svyatoslav", "Saint-Petersburg", "+7-999-456700"),
Person("Svyatoslav", "Saint-Petersburg", "+7-999-456789"),
Person("Vasilisa", "Saint-Petersburg", "+7-999-123456"))
val phoneBook = people.groupBy(Person::city)
.mapValues { (_, v) -> v.groupBy(Person::name) }
println(phoneBook)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1408 次 |
| 最近记录: |