強化された 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