從LIst集合中安全的刪除元素

 1 package cn.rocker.list;  2 
 3 import java.util.ArrayList;  4 import java.util.Iterator;  5 import java.util.List;  6 
 7 /**  
 8 * @ClassName: RemoveEleWhileIterator  9 * @Description: 集合在遍歷過程當中安全的刪除集合中的元素 10 * @author 112 11 * @date 2018年3月26日 上午11:33:31 12 */ 
13 public class RemoveEleWhileIterator { 14     
15     void init(List<Integer> list) { 16  list.clear(); 17         for (int i = 0; i < 10; i++) { 18             list.add(i + 1); 19  } 20  } 21     
22     /**
23  * 移除方法一 24  * @param list 25      */
26     void remove(List<Integer> list) { 27         for (int i = 0; i < 5; i++) { 28  list.remove(i); 29  } 30  } 31     
32     
33     /**
34  * 移除方法二 35  * @param list 36      */
37     void removeTwo(List<Integer> list) { 38         for (int i : list) { 39             if (i < 6) { 40  list.remove(i); 41  } 42  } 43  } 44     
45     
46     /**
47  * 移除方法三 48  * @param list 49      */
50     void removeThree(List<Integer> list) { 51         for (Iterator<Integer> iter = list.iterator(); iter.hasNext();) { 52             int i = iter.next(); 53             if (i < 6) { 54  iter.remove(); 55  } 56  } 57  } 58     
59     
60      public static void main(String[] args) { 61          RemoveEleWhileIterator testList = new RemoveEleWhileIterator(); 62             List<Integer> list = new ArrayList<Integer>(); 63       
64             // 第一種方法 
65  testList.init(list); 66  testList.remove(list); 67  System.out.println(list); 68       
69             // 第二種方法 
70            try { 71  testList.init(list); 72  testList.removeTwo(list); 73  System.out.println(list); 74             } catch (Exception e) { 75  e.printStackTrace(); 76  } 77               
78             // 第三種方法 
79  testList.init(list); 80  testList.removeThree(list); 81  System.out.println(list); 82  } 83 }

運行結果以下:java

[2, 4, 6, 8, 10]安全

java.util.ConcurrentModificationExceptionspa

at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)code

at java.util.AbstractList$Itr.next(AbstractList.java:343)blog

  [6, 7, 8, 9, 10]ip

相關文章
相關標籤/搜索