java - 我将如何迭代自定义对象列表,比较列表中的情侣并根据特定条件删除?

标签 java list iterator duplicates comparison

我正在尝试迭代列表来比较 .每条记录中有许多不同的字段,但我想根据两个值“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/

相关文章:

java - 未登录时禁用 JButton

java - 玩!框架——ORM

Java : Creating chunks of List for processing

c++ - vector 和迭代器,打印出值而不是内存地址

java - Facebook 登录 - 在 onCancel 中获取用户数据

java - 获取不满意的依赖异常 : while using JSF @Push-annotation with Spring frame work

python - 如何找到列表中数字的累积总和?

android - 在android中获取光标处的所有项目

c++ - 并发 STL it++ 和 *it 安全吗?

c++ - 打印结构双端队列中的第一个数组