有没有一种解决方案,可以过滤列表中的列表,然后返回列表?
例如:
[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}]}
]
答案 0 :(得分:1)
您可以在过滤学生时将组列表映射到自身。如果您的组是数据类,则可以执行以下操作:
val filtered = original.map { group ->
val students = group.student.filter { it.age in 11..12 }
group.copy(student = students)
}
内部过滤器将删除不需要的学生,副本将复制您的原始组,但将学生列表更改为已过滤的学生列表。