如何确定数组中是否还有未分配的值?

时间:2010-10-01 19:30:31

标签: java arrays

我有一个标准的java数组,其中null值用于数组中未分配或空的点。如何判断是否还有未分配的值,即阵列是否已满?

5 个答案:

答案 0 :(得分:5)

作为静态大小的数组,您可以说数组总是满的。

但是如果你想知道你的数组中有多少个空值,你只需要经历它。

Object[] array = new Object[10];
int count = 0;
for(Object item : array){
    if(item == null)
        count++;
}

或者采用特定方法:

public int countNulls(Object[] array){
    int count = 0;
    for(Object item : array){
        if(item == null)
            count++;
    }
    return count;
}

如果您按索引填写数组索引:

public int nextEmptyIndex(Object[] array){
    int count = 0;
    for(Object item : array){
        if(item == null)
            return count;
        else
            count++;
    }
    return -1; //Return an invalid value or do something to say that there is no empty index.
}

答案 1 :(得分:3)

如果“not full”意味着数组中有null元素,那么您将创建一个方法,如

public boolean isFull(Object[] array) {
   for (Object element : array) {
      if (element == null) return false;
   }
   return true;
}

答案 2 :(得分:1)

数组总是满的,所以

public boolean isFull(Object[] array) {
   return true;
}

答案 3 :(得分:0)

if(myarray [myarray.length-1]!= null){
System.out.println(“数组已满”);
}

答案 4 :(得分:0)

虽然我理解你的问题,但我有点困惑你为什么这么问。首先,我会对Q本身进行一次尝试。

Java中的数组具有固定的大小,因此它们“完整”的概念并没有多大意义。对于基本数组,整个数组使用基元的默认值进行初始化。因此,如果您知道要分配的值是非默认值,则可以从元素长度1检查默认值。

如果您有一个对象数组,则可以检查空值。同样,这假设您没有在人口中的某个点分配空值(这可能是不好的做法)。同样,您可以从数组的最后一个元素进入,随时查看。

您可以通过使用正确的对象集合(例如数组列表)来避免此问题。您可以根据需要填充任意数量的元素。