【发布时间】:2018-02-19 21:04:58
【问题描述】:
我想根据子列表中的条件过滤父列表。这里父列表是列表,子列表是列表。我想获取第一科成绩大于等于70的学生名单。
// College Class which has list of students.
public class College {
private long collegeId;
private List<Student> students;
}
// Student class which has list of subjects.
public class Student {
private long studentId;
private List<Subject> subjects;
}
// Subject class.
public class Subject {
private long subjectId;
private String subjectName;
private long marks;
}
现在我想获取所有第一科成绩>70 的学生名单。
我正在尝试类似下面的东西;但得到“java.lang.ArrayIndexOutOfBoundsException:27745”。
List<Student> distinctionStudents = college.getStudents().stream().filter(s -> s.getSubjects().get(0).getMarks()>=70).collect(Collectors.toList());
不知道如何完成。
提前谢谢大家。
【问题讨论】:
-
看起来这段代码不应该产生这个期望。还有别的事。发布MCVE。
标签: java filter java-stream