ArrayList的奇怪行为

时间:2015-04-29 11:18:12

标签: java java-8

我有以下代码 -

import java.util.ArrayList;
import java.util.List;

public class ArrayListTest {

    public static void main(String[] args) {

        List<String> list = new ArrayList<>();
        list.add("1a");
        list.add("2b");
        for (String s : list) {
            list.remove(s);
        }
        System.out.println("Removed");
        System.out.println(list);

    }

}

如果我运行这个程序,我希望它应该抛出异常,但输出是&#34; 2b&#34;。如果运行正常,那么为什么它不会删除最后一个对象。

再次如果我在列表中添加更多元素这是一个棘手的异常java.util.ConcurrentModificationException这是预期的。

我的问题是 -

  1. 如果列表中有2个元素,为什么不从列表中删除所有元素?
  2. 为什么只有当我们有更多元素时才会发生java.util.ConcurrentModificationException异常?我花了很多时间用两个元素。
  3. 我使用的是Java 8。

    提前致谢。

0 个答案:

没有答案