我有一个数组,我让地方覆盖,但在数组的末尾有一个“空” 有没有办法让这个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
}
}
我想要缩短阵列,删除最后一个本地,但我不知道如何,这是我的想法吗? 谢谢!
答案 0 :(得分:2)
无法更改现有数组的长度以使其更短(或更长)。
如果你打算使用裸阵列,那么只有避免在数组中留下null
引用的方法是分配一个具有正确(新)长度的新数组,复制元素然后使用新的阵列代替旧的阵列。您可以使用new
和for
循环直接执行此操作来复制元素,也可以使用Arrays.copyOf(...)
,Arrays.copyOfRange(...)
和/或System.arraycopy(...)
。
有两种选择:
最好的方法是使用某种List
而不是数组。在大多数情况下这是首选,因为它使您的代码更简单。
您可以使用单独的int
变量来表示数组中非空元素的数量。