java中的foreach循环大家平常都在使用,但是有几点细节需要真正搞清楚。
先来看看问题:
ArrayList<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
final String toRemove = "2";
final String toAdd = "1000";
for (String item : list) {
if (toRemove.equals(item)) {
list.remove(item); // ①
list.add(toAdd); // ②
}
item = "100"; // ③
}
for(String item : list) {
System.out.println(item);
}
- 问题1:运行上面的代码会输出什么?
- 问题2:如果把②位置所在行的代码注释掉,输出什么?
- 问题3:在注释掉②行的情况下,如果toRemove初始值为"1"或者"2",输出是什么?
如果你还不能清晰地回答出以上问题,请看看
因为文章中分析得很细,这里就不赘述了。