我知道new for each循环适用于Iterable和数组,但我不知道使用数组时幕后会发生什么。
有人能帮我理解这个吗?提前谢谢。
int[] number = new int[10];
for(int i: number) {
}发布于 2013-01-11 03:39:47
该循环等同于:
for(int j = 0; j < number.length; j++) {
int i = number[j];
...
}其中j是不与正常用户标识符冲突的内部生成的引用。
发布于 2016-01-26 06:06:52
有点晚了,但现在就到了。
编译器知道是否将for-each循环语句用于集合或数组。
如果用于收集,编译器会使用Iterator将for-each循环转换为等效的for循环。
如果用于数组,编译器会使用索引变量将for-each循环转换为等效的for循环。
发布于 2013-01-11 03:39:06
在您的代码中,您将在内存中分配一个由10个整数组成的数组,并获取对它的引用。在for循环中,您只需迭代数组中的每一项,对于所有项,最初的值将为0。在迭代数组元素时,每一项的值都将存储在for循环中声明的变量i中。
https://stackoverflow.com/questions/14265888
复制相似问题