【发布时间】:2021-01-07 14:59:19
【问题描述】:
我有两个不同的列表,第一个是列表,第二个是列表 List studentList = new ArrayList(); List moduleList = new ArrayList();
如何在 studentList 上迭代 modulList,以便您可以看到哪个学生通过了哪个模块;
班级学生{
private String studentId;
private String name;
private Type gender;
private String studClass;
private String education;
private HashMap<String, Module> faillOrPass;
public Student()
{
faillOrPass = new HashMap<String, Module>();
}
public Student (String studentId, String name, Type gender, String studClass, String education)
{
faillOrPass = new HashMap<String, Module>();
setStudentId(studentId);
setName(name);
setGender(gender);
setStudClass(studClass);
setEducation(education);
}
public enum Type { MALE, FAML}
// getters and setters
// equals() and hashCode()
// toString()
}
类模块{
String modulecode;
int grade;
int year;
public Module(String code, int year) {
setModule(code);
setYear(year);
setGrade(-1);
}
// getters and setters
// equals and hashCode
// toString
} 公共类 TestClass {
final static Student st = new Student();
static String ZAYNUL = st.setVolledigeNaam("Zaynul Zaini");
static String PIPO = st.setVolledigeNaam("Pipo");
static String SANNY = st.setVolledigeNaam("Sanny Saniwich");
static String JOHAN = st.setVolledigeNaam("Johan Ginger");
static String DURSAH = st.setVolledigeNaam("Dursah Pikobillo");
static String ROMAN = st.setVolledigeNaam("Roman Romanawich");
static String TOM = st.setVolledigeNaam("Johonson");
static String ANDRE = st.setVolledigeNaam("Andersons");
public static List<Vak> getModuleList() {
return List.of(
new Vak(ZAYNUL, "IT", 8, 2020),
new Vak(SANNY, "IT", 10, 2019),
new Vak(ROMAN, "IT", 9, 2018),
new Vak(MALIKA, "IT", 8, 2017),
new Vak(DURSAH,"IT", 10, 2016),
new Vak(PIPO,"IT", 10, 2020),
new Vak(PIPO,"IPC", 5, 2020),
new Vak(ZAYNUL,"IPC", 6, 2019),
new Vak(SANNY,"IPC", 4, 2018),
new Vak(ROMAN,"IPC", 1, 2017),
new Vak(MALIKA,"IPC", 5, 2016),
new Vak(DURSAH,"IPC", 4, 2020));
}
public static List<Student> getStudentList() {
List<Student> listVak = new ArrayList<>();
listVak.add(new Student("011", ZAYNUL, Student.Type.MALE, "first year", "Architecture"));
listVak.add(new Student("012", MALIKA, Student.Type.FEMALE, "second year", "economics"));
listVak.add(new Student("013", SANNY, Student.Type.FEMALE, "third year", "IT"));
listVak.add(new Student("014", ROMAN, Student.Type.MALE, "fourth year", "Astronomy"));
listVak.add(new Student("015", TOM, Student.Type.MALE, "second year", "economics"));
listVak.add(new Student("016", ANDRE, Student.Type.FEMALE, "third year", "IT"));
listVak.add(new Student("017", JOHAN, Student.Type.MALE, "fourth year", "Astronomy"));
return listVak;
}
public static void getPassedAndFaillModule(List<Student> listSt, List<Module> listVak) {
List<Student> filteredList = listSt.stream()
.filter(student -> listVak.stream()
.filter(md -> md.getCijfer() > 5)
.anyMatch(mdo -> mdo.getStudentName() !=null
&& student.getVolledigeNaam().equals(mdo.getStudentName())))
.collect(Collectors.toList());
filteredList.forEach(x -> System.out.println(x));
}
public static void main(String[] args) {
System.out.println("Print the result: ");
getPassedAndFaillModule(getStudentList(), getModuleList());
}
}
这是我得到但不好的结果。
打印结果: StudentImpl{studentnummer='011', volledigeNaam='Zaynul Zaini', type='MALE', klaas='first year', studierichting='Architecture', vakkenLijst={}}
StudentImpl{studentnummer='012', volledigeNaam='Malika Ginger', type='FEMALE', klaas='second year', studierichting='economics', vakkenLijst={}}
StudentImpl{studentnummer='013', volledigeNaam='Sanny Saniwich', type='FEMALE', klaas='third year', studierichting='IT', vakkenLijst={}}
StudentImpl{studentnummer='014', volledigeNaam='Roman Romanawich', type='MALE', klaas='第四年', studierichting='Astronomy', vakkenLijst={}}
【问题讨论】: