2009-07-14 22 views
1

私はJavaでbidimensionalオブジェクト配列を持っています。 配列の塗りつぶし中にスキップされたため、一部のインデックスが使用されていません。 アレイは、次のようになります。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

あなたが読み込まれていない要素(または要素のセット)を持っている場合は、あなただけ使用して欠損値(複数可)に提供します。

Array[2] = new Object[3]; 

たり、配列を圧縮しようとしているの?後者の場合は、新しい配列を作成するだけです。null値をスキップして、配列全体を反復処理します。

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

問題は、あなたがまだ「行方不明」の値を持っている - それは最後に今です。 –

+1

新しい配列が必要で、 'filled'値を新しい配列にコピーします。あなたはあなたの答えにこれをすでに示しました。 – Mnementh

関連する問題