java中遇到的噁心異常java.util.ConcurrentModificationException
阿新 • • 發佈:2019-01-31
1,單執行緒下遇到的場景:在foreach遍歷中,使用list.remove(物件)拋異常
list.forEach(orderItemEntity -> {
if (orderItemEntity.getProductId().equals(productId)){
list.remove(orderItemEntity);
}
})
產生的原因:
看一下在jdk中的說法:
而這裡, list呼叫其remove方法,就會造成這個異常,
解決方法:
Iterator<OrderItemEntity> iterator = list.iterator();
while (iterator.hasNext()){
OrderItemEntity orderItemEntity = iterator.next();
if (orderItemEntity.getProductId().equals(productId)){
iterator.remove();
}
}
使用迭代的remove方法。