遍歷List時刪除元素導致List丟擲java.util.ConcurrentModificationException異常
阿新 • • 發佈:2022-12-04
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); }
使用迭代器可以正常執行