增强for循环通过只能对集合做检索,而无法更新
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (Integer integer:list) {
integer = 5;
System.out.println(integer+" ");
}
System.out.println(list);
在循环内integer改变了,但是出了循环list并未做出改变
原因integer是对list中对象的引用,integer = 5; 只是把integer的引用指向5,并未对list做出任何改变
如果有需求非要做出更新,可以用数组替换的方法,如下
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (int i = 0; i < list.size(); i++) {
list.set(i,5) ;
}
System.out.println(list);