Java数组的重建索引

Java数组的重建索引,java,arrays,Java,Arrays,我有一个Java中的二维对象数组。有些索引没有使用,因为它们在数组填充期间被跳过。该数组如下所示: Array[0][0] Array[0][1] Array[0][2] Array[1][0] Array[1][1] Array[1][2] Array[3][0] Array[3][1] Array[3][2] 缺少2,如何重建索引以使数组“正确”?如果您有一个元素(或一组元素)未填充,您只需使用以下方法提供缺少的值: 还是要压缩数组?如果是后者,只需创建一个新数组 Object[] New

我有一个Java中的二维对象数组。有些索引没有使用,因为它们在数组填充期间被跳过。该数组如下所示:

Array[0][0]
Array[0][1]
Array[0][2]
Array[1][0]
Array[1][1]
Array[1][2]
Array[3][0]
Array[3][1]
Array[3][2]
缺少2,如何重建索引以使数组“正确”?

如果您有一个元素(或一组元素)未填充,您只需使用以下方法提供缺少的值:

还是要压缩数组?如果是后者,只需创建一个新数组

Object[] NewArray = new Object[Array.length-1];
并遍历数组,跳过空值

int j = 0;
for (int i = 0; i < Array.length; i++) {
   if (Array[i] != null) {
      NewArray[j++]=Array[i];
   }
}
intj=0;
for(int i=0;i

不幸的是,一旦创建了数组,就无法调整其大小(如果需要更动态的行为,请使用
ArrayList

嗯,你有没有想过:

array[2] = array[3];
array[3] = null;

问题是您仍然有“缺失”值-现在它刚刚结束。然后需要一个新数组,并将“填充”值复制到新数组中。你已经在回答中说明了这一点。
array[2] = array[3];
array[3] = null;