list在for循环中删除元素报错

List result = new ArrayList<>();
for (LkFinanceAccount data : result) {
result.remove(data);
}

上面这种删除方法会报错,要使用jdk1.8以后的版本
result.removeIf(data1 -> faIdList.contains(data1.getId()) && data1.getActualAmount().compareTo(BigDecimal.ZERO) == 0);

或者使用CopyOnWriteArrayList:
CopyOnWriteArrayList cowList = new CopyOnWriteArrayList(result);
for (LkFinanceAccount data : cowList) {

            if ( faIdList.contains(data.getId()) && data.getActualAmount().compareTo(BigDecimal.ZERO) == 0){
                cowList.remove(data);
            }

}

posted @ 2026-02-05 11:38  crazyinjava  阅读(2)  评论(0)    收藏  举报