JAVA增强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循环却可以

JAVA增强for循环,只能对已初始化的tempArr数组进行操作,比如遍历

增强for循环是只读操作。

for (Circlelist tempList : tempArr) {
  .........
}

相当于:

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

题目中第一个增强for循环,并没有实际改变数组元素的值,所以无法完成初始化操作。

用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

Java 中新增的 foreach 的用法 你可以看看foreach的局限性

java增强for循环,类似这种

for (int l = 0; l < tempArr.length; l++) {
Circlelist circlelist = tempArr[l] ;

                circlelist=new Circlelist();

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