如何删除数组localitie?

时间:2013-09-07 23:23:46

标签: java arrays null

我有一个数组,我让地方覆盖,但在数组的末尾有一个“空” 有没有办法让这个null不会在数组中发生以供将来使用?

 public void overwriteArray(int num){        
        if(num > 0 && array != null && num <= array.length) {
           for(int i = num-1; i < array.length-1; i++) {
               array[i] = array[i+1];
        }    arrary[array.length-1] = null; // i want this null to be terminated              
     }
   } 

我想要缩短阵列,删除最后一个本地,但我不知道如何,这是我的想法吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

无法更改现有数组的长度以使其更短(或更长)。

如果你打算使用裸阵列,那么只有避免在数组中留下null引用的方法是分配一个具有正确(新)长度的新数组,复制元素然后使用新的阵列代替旧的阵列。您可以使用newfor循环直接执行此操作来复制元素,也可以使用Arrays.copyOf(...)Arrays.copyOfRange(...)和/或System.arraycopy(...)

有两种选择:

  • 最好的方法是使用某种List而不是数组。在大多数情况下这是首选,因为它使您的代码更简单。

  • 您可以使用单独的int变量来表示数组中非空元素的数量。