Расширенный цикл 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);

вставьте сюда описание изображения
Целое число изменяется в цикле, а список после цикла не меняется,
причина в том, что целое является ссылкой на объект в списке, целое = 5, оно просто указывает ссылку целого на 5, а не внести любые изменения в список.
вставьте сюда описание изображения
вставьте сюда описание изображения

Если есть необходимость сделать обновление, можно воспользоваться методом замены массива следующим образом

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