list遍歷時刪除元素


正如我們前面所知道。

在我們依靠遍歷刪除ArrayList時總是出現一些神奇的現象。比如

ArrayList<integer> arraylist = new ArrayList<integer>();

arraylist.add(1);

arraylist.add(1);

arraylist.add(2);

arraylist.add(3);

arraylist.add(1);

我們遍歷並刪除其中的1

for(int i = 0;i < arraylist.size();i++){

  if(arraylist.get(i) == 1){

  arraylist.remove(i);

  }

}

然后我們發現了剩下的是{1,2,3}

emmmmmmmmmmmm

原因很簡單是因為我們在刪除第一個1的時候因為arraylist變小第二個1改變到了第一個1的位置上。

但是怎么解決的。

 

反着來

for(int i = arraylist.size();i > -1;i--){

  if(arraylist.get(i) == 1){

  arraylist.remove(i);

  }

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM