for循环增强
1 for(声明语句 : 表达式) { 2 //代码句子 3 }
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
其语法如下:
for(元素数据类型 变量:数组或者Collection集合){使用变量即可}
http://www.cnblogs.com/mengdd/archive/2013/01/21/2870019.html
for的应用;
首先增强for循环和iterator遍历的效果是一样的,也就说增强for循环的内部也就是调用iteratoer实现的,
但是增强for循环有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
---------------------------------------
1 Circlelist[] tempArr = new Circlelist[radix]; 2 // for (Circlelist tempList : tempArr) { 3 // tempList = new Circlelist(); 4 // } 5 for (int l = 0; l < tempArr.length; l++) { 6 tempArr[l] = new Circlelist(); 7 }
为什么第一个增强for循环不能对tempArr数组的每个成员进行初始化,而第二个普通的for循环却可以?
增强for循环是只读操作。
相当于:
1 for (int i = 0; i < tempArr.length; i++) { 2 Circlelist tempList = tempArr[i]; //读取数组元素值放到一个临时变量中 3 ....... //其它代码,使用这个临时变量 4 }
并没有实际改变数组元素的值,所以无法完成初始化操作。
只是改变了circlelist变量的指向,并没有给tempArr[l] 赋值。