我遇到了這段代碼,它在迭代時從列表中刪除了項目,但它并沒有拋出并發異常并在列表中留下了一些項目。這是為什么?例子:。public class Application { public static void main(String[] args) { List<Integer> integerList = new ArrayList<Integer>(); integerList.add(1); integerList.add(2); for (Integer integer : integerList) { removeInteger(integerList, integer); } System.out.println(integerList.toString()); // prints [2] as it was not removed (while it should be) } private static void removeInteger(List<Integer> integerList, Integer integer) { for (Integer integer1 : integerList) { if (integer.equals(integer1)) { int index = integerList.indexOf(integer); if (index >= 0) { integerList.remove(index); } } } }}如果我將removeInteger方法更改為 useIterator而不是main我傳遞的副本,則integerList一切都按預期工作。
迭代時刪除離開元素并且不拋出并發 E
慕的地8271018
2023-04-19 17:01:14