1. 程式人生 > >java裡面在遍歷集合的時候對集合進行新增或者刪除修改時的併發修改異常

java裡面在遍歷集合的時候對集合進行新增或者刪除修改時的併發修改異常

在今天看視訊的時候講到修改集合元素的時候會出現併發修改異常

就是像這樣

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
for(int i:list){
    list.remove(i);
}

此時就會報併發修改異常

  • 因為你在進入迴圈的時候已經確定了集合的大小,修改之後再去按照原大小去遍歷的話肯定是不對的

解決方法有:

  • 用常規for迴圈,判斷條件改為每次進行集合大小的計算:

    i<list.size();
    
  • java裡面提供了一種適應這種操作的集合CopyOnWriteArrayList,使用它可直接避免這種異常