【问题标题】:How to determine if my array is empty如何确定我的数组是否为空
【发布时间】:2016-01-29 17:11:27
【问题描述】:

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

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

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

【问题讨论】:

  • 你的数组是否总是int[]类型?
  • 原始类型永远不能为空,因此您会收到该错误。是的,它适用于对象,而不适用于 int。对于测试使用整数而不是整数。然后你就可以检查 null 了。
  • 为什么要将 null 放入数组中?如果它们是 int,则使用可以为 null 的 Integer 并自动转换为 int
  • @StackFlowed 它也不适用于对象,因为它只检查数组的第一个元素并立即返回。

标签: java arrays primitive-types


【解决方案1】:

原始类型不能是null,这就是它不起作用的原因。有了对象,它就会起作用。在这种情况下,您可以使用以下代码:

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

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

【解决方案2】:
if(array.length == 0){
    //array is empty
}

应该够了

【讨论】:

  • 那充其量检查我的数组的长度是否为 0,而不是其中是否有任何内容
【解决方案3】:

Java 数组中没有“空”元素。

因此,如果它是一个 Object 数组,您将使用“== null”进行测试

但如果它是一个原始类型的数组并且您没有为该位置分配任何内容,那么它的值将为零。

因此,除非您确定 0 永远不会是“有效”值,否则您不能只在数组中的“空”位置插入。

见:https://stackoverflow.com/a/286167/4088809

【讨论】:

    【解决方案4】:

    你的答案还有另一个问题。

    How to check if array indexes are empty and if so check the next? 答案是:

     for(int i=0;i<newData.length;i++)
        {
            if(newData[i]==0)
                System.out.println("The value at " + i + "is empty");
        }
    

    针对您的代码进行了优化(我认为您希望使用 isArrayFilles 之类的方法或类似的方法):

     for(int i=0;i<newData.length;i++)
        {
            if(newData[i]==0)
                return false;
        }
    
    return true;
    

    【讨论】:

      【解决方案5】:

      尝试将您的数组声明为对象而不是传统数组。 例如:

      Object array[] = new Object[size];
      

      【讨论】:

        猜你喜欢
        • 2011-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-12
        • 2011-07-12
        相关资源
        最近更新 更多