**
关于for-each修改数组值的问题
**
今天写代码的时候发现for-each无法修改数组值的问题,如下:
public class testForEach {
public static void main(String[] args) {
int[] a = new int[5];
for(int i:a) {
i=1;
}
System.out.println(Arrays.toString(a));
for(int i=0;i<a.length;i++) {
a[i]=1;
}
System.out.println(Arrays.toString(a));
}
}
输出:
[0, 0, 0, 0, 0]
[1, 1, 1, 1, 1]
可以看出,for-each无法修改数组值
实际上:
for(int i:a) {
i=1;
}
等于
for(int i=0;i<a.length;i++) {
int b=a[i];
b=1;
}
所以,只是修改了临时变量的值,并不是修改了数组里面的值
结论:java中的for-each只能遍历数组,无法修改数组的值