如何只遍历已加载到数组中的对象而不遍历整个数组?

How do I iterate through only the objects I have loaded into an array without iterating through the entire array?

我在大学辅修计算机科学,需要编写一个包含三个组件的程序:

  1. 一个“Circle”class,它定义了创建和使用 Circle 对象的方法,该对象的半径和颜色作为对象中定义的属性。
  2. 管理圆形对象数组的“CircleMgr”class。
  3. 为程序生成输出的“CircleApp”class。

我遇到的问题(导致运行时错误)已被我的教授识别为位于 CircleApp class 的第 53 行,这是一个遍历列表的 for 循环--代码如下*:

for(int i = 0; i < mainList.length; i++){
        System.out.println("Circle " + i);
        System.out.println(mainList[i].getRadius());
        System.out.println(mainList[i].getColor());
    }

在程序的前面,我将CircleMgr创建和管理的列表加载到mainList中,mainList包含在CircleApp中。根据我的教授的说法,我只需要遍历已加载到 mainList 中的对象(它永远不会被完全填充,因为我们被告知创建的对象数组的大小远大于输入文件所包含的内容)。不幸的是,我不确定如何以不同的方式遍历数组;有人能为此提供指导吗?

*(一旦我能够越过运行时错误并实际生成输出,println 语句就会确保在格式化之前输出是正确的)。

您需要计算数组中存储了多少东西。

然后,在循环条件中使用计数如下。

for(int i = 0; i < count; i++){
        System.out.println("Circle " + i);
        System.out.println(mainList[i].getRadius());
        System.out.println(mainList[i].getColor());
    }

如果您的数组永远不会填满,那么您可以在到达空项时停止迭代。

for(int i = 0; mainList[i] != null; i++){
    System.out.println("Circle " + i);
    System.out.println(mainList[i].getRadius());
    System.out.println(mainList[i].getColor());
}

在稍后的学习中,您将了解列表,它可以随数据增长和收缩。