List的remove()方法的三種正確打開方式


轉:

 

java編程:List的remove()方法的三種正確打開方式!

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接: https://blog.csdn.net/sinat_29355599/article/details/81607554

方法一:

倒序循環,因為list刪除只會導致當前元素之后的元素位置發生改變,所以采用倒序可以保證前面的元素沒有變化;


for(int i=list.size()-1;i>=0;i--){ list.remove(i); }
  • 1
  • 2
  • 3
  • 4

方法二:

順序循環時,刪除當前位置的值,下一個值就會補到當前位置,所以需要執行i–操作;

for (int i=0; i<list.size(); i++) { if (list.get(i) == 3) { list.remove(i); i--; } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

方法三:

注意必須用迭代器的remove()方法,不要用list的remove,不然會發生java.util.ConcurrentModificationException 異常,此異常的解決方式在另一篇博客里有。

if (null != list && list.size() > 0) { Iterator it = list.iterator(); while(it.hasNext()){ Student stu = (Student)it.next(); if (stu.getStudentId() == studentId) { it.remove(); //移除該對象 } } }


免責聲明!

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



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