Kotlin展平+嵌套对象贴图
我有一个对象列表,如下所示:Kotlin展平+嵌套对象贴图,kotlin,Kotlin,我有一个对象列表,如下所示: data class Classroom( val id: Int, val name: String, val students: List<Student> ) data class Student( val id: Int, val name: String, val age: Int, val gpa: Long, ) 我想有一个散列图,映射所有班级中所有学生的Student.name->Student,而不管哪个学生属于每个班
data class Classroom(
val id: Int,
val name: String,
val students: List<Student>
)
data class Student(
val id: Int,
val name: String,
val age: Int,
val gpa: Long,
)
我想有一个散列图,映射所有班级中所有学生的Student.name->Student,而不管哪个学生属于每个班级
我的输入是一个教室列表
我怎样才能优雅地做到这一点
val studentMap: Map<String, Student> = classrooms
.flatMap { it.students }
.map { student -> student.name to student }
.toMap()
运行此命令将产生:
foo=Student(id=0, name=foo, age=0, gpa=0)
bar=Student(id=0, name=bar, age=0, gpa=0)
baz=Student(id=0, name=baz, age=0, gpa=0)
asdf=Student(id=0, name=asdf, age=0, gpa=0)
ghjk=Student(id=0, name=ghjk, age=0, gpa=0)
qwerty=Student(id=0, name=qwerty, age=0, gpa=0)
如果您列出示例输入和输出,以及您已经尝试过的内容,问题会更好。
foo=Student(id=0, name=foo, age=0, gpa=0)
bar=Student(id=0, name=bar, age=0, gpa=0)
baz=Student(id=0, name=baz, age=0, gpa=0)
asdf=Student(id=0, name=asdf, age=0, gpa=0)
ghjk=Student(id=0, name=ghjk, age=0, gpa=0)
qwerty=Student(id=0, name=qwerty, age=0, gpa=0)