我正在尝试迭代列表来比较 .每条记录中有许多不同的字段,但我想根据两个值“EmpNum”和“GroupNum”检查每条记录。如果迭代检测到特定的 EmpNum 和 GroupNum,我想忽略列表中具有相同 EmpNum 和 GroupNum 的任何其他后续记录。
我尝试使用 for every 循环进行迭代,这有利于进行比较,但从我读到的内容来看,您不应该使用 for every 循环从列表中删除。任何删除都应该使用迭代器类来完成。但是当我尝试使用嵌套迭代器循环来比较情侣时,我不确定如何删除检查。
ListIterator<Record> iteration1 = uploadRecordList.listIterator()
if (iteration1.hasNext()){
for (Record record1 = iteration1.next(); iteration1.hasNext();
record1 = iteration1.next()){
ListIterator<Record> iteration2 =
uploadRecordList.listIterator(iteration1.nextIndex());
for (Record record2 = iteration2.next();
iteration2.hasNext(); record2 = iteration2.next()){
System.out.println("---RECORD ONE----")
System.out.println("record1 ID "+ record1.id.toString())
System.out.println("record1 relID = "+ record1.relationshipId.toString())
System.out.println("record1 empID = "+ record1.employeeId.toString())
System.out.println("record1 actionIndicator = "+ record1.actionIndicator.toString())
System.out.println("record1 consultant = "+ record1.consultant)
System.out.println("-----------------")
System.out.println("---RECORD TWO----")
System.out.println("record1 ID "+ record2.id.toString())
System.out.println("record2 relID = "+ record2.relationshipId.toString())
System.out.println("record2 empID = "+ record2.employeeId.toString())
System.out.println("record2 actionIndicator = "+ record2.actionIndicator.toString())
System.out.println("record2 consultant = "+ record2.consultant)
}
}
}
最佳答案
您可以创建一个临时列表并向其中添加已删除的记录,最后从主列表中删除临时列表。 否则,您可以使用 Iterator 删除方法来避免 ConcurrentModificationException。
使用迭代器删除方法删除时要小心,您应该删除当前对象而不是任何对象。
关于java - 我将如何迭代自定义对象列表,比较列表中的情侣并根据特定条件删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57812975/