如何确定我的数组是否为空

myn*_*shi 2 java arrays primitive-types

我需要帮助来检查我的阵列是否已满或者我是否可以在那里更多.我以为我可以通过执行以下操作来检查其中一个位置是否为空:

    for (int i =0; i <array.length; i++){
        if(array[i] == null){
            return false;
        }else{
            return true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

为了测试这个,我使用int创建了am数组并得到了错误:对于参数类型int,操作符==是未定义的,null是否有另外一种方法可以执行此操作?在我的原始任务中,我将使用对象而不是int来执行此操作,这是否意味着它将使用对象而不是int?

mes*_*azs 5

原始类型不可能null,这就是为什么不起作用.使用对象,它将起作用.在这种情况下,您可以使用以下代码:

public boolean isArrayFull(Integer[] array) {
    for (Integer i = 0; i < array.length; i++) {
        if (array[i] == null) {
            return false;
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这也修复了代码中的错误.如果第一个元素不为null,则代码将返回true.