当长度应该被知道时,使用array.length与数组中元素的数量

时间:2016-02-14 14:05:11

标签: java arrays

我正在攻读考试并接受旧考试。

其中一个类包含两个数组,每个数组应该包含20个元素。

在遍历数组时,使用array.length是否更好,或者使用数组中的元素数量更好。

例如,我们正在浏览一个数组,并希望找到最大的教室。我写了一个for循环,在编写它时,使用array.length还是20?代码如下:

public Clsrm biggestClsrm() {
    Clsrm classroom = new Clsrm(0, 0 , true);

    for (int i = 0; i < _clsrms.length; i++) {// or should it be for (int i = 0; i < 20 ; i++)
        if (_clsrms[i].isBigger(classroom)) {
            classroom = new Clsrm(_clsrms[i]);
        }
    }
}

假设条件是应该的那样是否安全?

1 个答案:

答案 0 :(得分:3)

使用_clsrms.length。请将此错误代码视为示例:

class BadLoop {
    Clsrm _clsrms = new Clsrm[20];
    public Clsrm biggestClsrm() {
        for (int i = 0; i < 20; i++) {
            ...
        }
    }
}

数字20在代码中重复两次 - 一次在_clsrms声明中,一次在循环中。

如果某人将声明中的20更改为30,那么biggestClsrm()会在确定最大10课堂时忽略它们。另一方面,如果声明从20更改为10,则biggestClsrm()将停止工作,因为它会崩溃。请注意,使用length而不是固定数字可以避免这两个问题。

基本上,代码的重复部分变为维护责任,使用length很容易避免。