关于for-each修改数组值的问题

**

关于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只能遍历数组,无法修改数组的值

猜你喜欢

转载自blog.csdn.net/qq_42989595/article/details/93734348
今日推荐