首页 > 试题广场 >

下面程序的运行结果正确的选项是?() List<St

[单选题]

下面程序的运行结果正确的选项是?()

List<String> dataList = new ArrayList<>();
dataList.add("a");
dataList.add("b");
dataList.add("c");
dataList.add("d");
dataList.add("e");
for (int i = 0; i < dataList.size(); ++i) {
    String data = dataList.get(i);
    if ("c".equals(data) || "d".equals(data)) {
        dataList.remove(data);
    }
}
System.out.println(dataList);

  • [a,b,e]

  •  [a, b, d, e]

  • IndexOutOfBoundsException

  •  ConcurrentModificationException

当把c在List中remove之后,相当于c之后的元素向前移动一位,于是原本指向d的指向了e,所以最后留下来a,b,d,e
发表于 2020-02-18 12:52:59 回复(0)