2009-07-14 52 views
1

我有一个Java中的二维Object数组。 某些指数不会被使用,因为在阵列填充期间跳过了这些指数。 阵列的样子:重建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

如果你有一个元素(或一组元素)未填写,您只需提供缺少的值(S)使用:

Array[2] = new Object[3]; 

或者是你寻找到数组压缩?如果是后者,只需创建一个新阵列

Object[] NewArray = new Object[Array.length-1]; 

并遍历Array,跳过空值。

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

不幸的是,一旦它的创建(如果你想要更多的动态行为使用ArrayList),你不能调整大小的数组。

1

嗯,你有没有想到:

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

问题是你仍然有“失踪”价值 - 它现在只是在最后。 – 2009-07-14 09:01:37