1. 程式人生 > 其它 >遍歷List時刪除元素導致List丟擲java.util.ConcurrentModificationException異常

遍歷List時刪除元素導致List丟擲java.util.ConcurrentModificationException異常

 1 public static void main(String[] args) {
 2             List<String> list = new ArrayList<String>();
 3             list.add("1");
 4             list.add("2");
 5             list.add("3");
 6             list.add("4");
 7             list.add("5");
 8             System.out.println("Original list : " + list);
9 System.out.println(); 10 11 for (String temp : list) { 12 System.out.println("Check for " + temp); 13 if ("3".equals(temp)) { 14 list.remove(temp); 15 } 16 } 17 18 System.out.println("Removed list : " + list);
19 }

執行以上程式碼丟擲 java.util.ConcurrentModificationException 異常

public static void main(String[] args) {
            List<String> list = new ArrayList<String>();
            list.add("1");
            list.add("2");
            list.add("3");
            list.add("4");
            list.add(
"5"); System.out.println("Original list : " + list); System.out.println(); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()){ String temp = iterator.next(); System.out.println("Check for " + temp); if("3".equals(temp)){ iterator.remove(); } } System.out.println("Removed list : " + list); }

使用迭代器可以正常執行