Kotlin 如何过滤列表中的列表,然后返回它?

Kotlin 如何过滤列表中的列表,然后返回它?,kotlin,Kotlin,是否有一种解决方案可以过滤列表中的列表,然后返回一个列表 例如: [group : {name:"group1", student :[student1:{age:10},student2:{age:11},student3:{age:12}]}, group : {name:"group2", student :[student1:{age:11},student2:{age:12},student3:{age:14}]}, ] 我想过滤年龄大于10岁小于13岁的学生 结果应该是

是否有一种解决方案可以过滤列表中的列表,然后返回一个列表

例如:

[group : {name:"group1", 
  student :[student1:{age:10},student2:{age:11},student3:{age:12}]},
group : {name:"group2", 
  student :[student1:{age:11},student2:{age:12},student3:{age:14}]},
]
我想过滤年龄大于10岁小于13岁的学生

结果应该是这样的:

[group : {name:"group1", 
  student :[student2:{age:11},student3:{age:12}]},
group : {name:"group2", 
  student :[student1:{age:11},student2:{age:12}]}
]

您可以在筛选学生时将组列表映射到自身。如果您的组是数据类,则可以执行以下操作:

val filtered = original.map { group ->
    val students = group.student.filter { it.age in 11..12 }
    group.copy(student = students)
}

内部筛选器将删除不需要的学生,副本将复制原始组,但会将学生列表更改为已筛选的组。

组和学生是什么类型?他们是你定义的班级吗?是的,小组里有学生。还有许多团体喜欢复制的方法。我总是倾向于忘记数据类的优点。