目前能够想到的方法有四种
第一种
将匹配的数据记录下来,然后过滤掉已匹配的数据。(效率太低,不推荐使用)
第二种
将集合深拷贝一份,在循环的时候如果匹配到了,通过索引将另一份的集合对应数据删除
第三种
将集合需要删除的元素设置为null,然后使用stream流过滤掉为null值的数据。
第四种
使用迭代器iterator的remove()方法进行删除。(推荐使用这种)
Iterator<SysBankBillEntity> iterator = bankBillList.iterator();
while (iterator.hasNext()) {
SysBankBillEntity bankBill = iterator.next();
if (doFullRowMatch(vbRow, bankBill, offset)) {
matched.put(vbRow, bankBill);
iterator.remove();
}
}