我已经想出了如何比较两个ArrayList并将重复项添加到一个新的ArrayList中。
有没有聪明的方法可以避免这种情况,只为她申请的每个优先级添加“Rodaba”一次? 这是我的输出,有没有办法只获取标记部分?
我已经被卡了很长时间。我真的很感激对更好地制作ArrayLists的建议,以及如何解决这个问题的建议。
ArrayList<Student> allStudentsA = assignStudents();
ArrayList<Student> 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() + "\t \t" + "EduNumber: " + student.getOptagelsesområde() + "\t" + "Prio: " + student.getPrio());
}
}
有没有聪明的方法可以避免这种情况,只为她申请的每个优先级添加“Rodaba”一次? 这是我的输出,有没有办法只获取标记部分?
![这是我的输出,有没有办法只获取标记部分](https://istack.dev59.com/UxRX9.webp)
Map
可能是一个不错的解决方案。同时,它也消除了嵌套的for
循环。 - Rohit Mourya