增强for循环无法做更新

增强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);

猜你喜欢

转载自blog.csdn.net/weixin_43866043/article/details/129556967