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)