Ive弄清楚了如何比较两个ArrayList并将重复项添加到新的ArrayList中.
ArrayList allStudentsA = assignStudents();
ArrayList allStudentsB = allStudentsA;
for (Student studentA : allStudentsA) {
for (Student studentB : allStudentsB) {
if (studentA.getId().equals(studentB.getId()) && studentA.getEduNumber() != studentB.getEduNumber()) {
duplicateStudents.add(studentB);
}
}
}
但是,按照我做的方式,我每次在每个副本中都添加一次.由于“ Rodaba”有7次优先权,因此她有7次优先权,因此她被添加到列表中的次数为7 * 6次.这是我打印的方式:
for (Student student : duplicateStudents) {
if (student.getFornavn().equals("Rodaba")) {
System.out.println("Name: " + student.getFornavn() + " " + "EduNumber: " + student.getOptagelsesomr?de() + "" + "Prio: " + student.getPrio());
}
}
有什么聪明的方法可以避免这种情况,只为她申请的每个优先级添加一次“ Rodaba”?
这是我的输出,有没有办法只获取标记的部分?
我已经坚持了很长时间.我真的很感谢这两个建议,这些建议都提出了一种更好的制作ArrayList的方法,以及如何解决这个问题.