JAVA List 移除元素

  1. ArrayList<String> list = new ArrayList<String>();  
  2.         list.add("one");  
  3.         list.add("two");  
  4.         list.add("two");  
  5.         list.add("two");  
  6.         list.add("two");  
  7.         for(int i=0;i<list.size();i++){  
  8.             if(list.get(i).equals("two")){  
  9.                 list.remove(i);  
  10.             }  
  11.         }  
  12.         System.out.println(list);  

    結果:[one, two, two] 

    1. ArrayList<String> list = new ArrayList<String>();  
    2. list.add("one");  
    3. list.add("two");  
    4. list.add("two");  
    5. list.add("two");  
    6. list.add("two");  
    7. for(String s:list){  
    8.     if(s.equals("two")){  
    9.         list.remove(s);  
    10.     }  
    11. }  
    12. System.out.println(list);  

    結果:報錯

    1. ArrayList<String> list = new ArrayList<String>();  
    2. list.add("one");  
    3. list.add("two");  
    4. list.add("two");  
    5. list.add("two");  
    6. list.add("two");  
    7. Iterator<String> iter = list.iterator();  
    8. while(iter.hasNext()){  
    9.     String s = iter.next();  
    10.     if(s.equals("two")){  
    11.         iter.remove();  
    12.     }  
    13. }  
    14. System.out.println(list); 

    結果:[one]  

    結論:用iterator 在併發時候更防止錯誤

    如果你想在循環過程中去掉某個元素,只能調用it.remove方法,    不能使用list.remove方法,    否則一定出併發訪問的錯誤.   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章