for循环增强

时间:2023-03-10 02:35:49
for循环增强
 for(声明语句 : 表达式) {
//代码句子
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

其语法如下:

for(元素数据类型 变量:数组或者Collection集合){使用变量即可}

http://www.cnblogs.com/mengdd/archive/2013/01/21/2870019.html

for的应用;

首先增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的,

但是增强for循环有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。

---------------------------------------

           Circlelist[] tempArr = new Circlelist[radix];
// for (Circlelist tempList : tempArr) {
// tempList = new Circlelist();
// }
for (int l = 0; l < tempArr.length; l++) {
tempArr[l] = new Circlelist();
}

为什么第一个增强for循环不能对tempArr数组的每个成员进行初始化,而第二个普通的for循环却可以?

增强for循环是只读操作。

相当于:

 for (int i = 0; i < tempArr.length; i++) {
Circlelist tempList = tempArr[i]; //读取数组元素值放到一个临时变量中
....... //其它代码,使用这个临时变量
}

并没有实际改变数组元素的值,所以无法完成初始化操作。

只是改变了circlelist变量的指向,并没有给tempArr[l] 赋值。