2016-07-14 11 views
1

配列はJavaで一定数の要素を持つと考えられますが、これ以外にも配列はこのアプリケーションで非常に役立ちました。別のデータ構造を使用する。行列/ 2次元配列に新しい列を追加する

私の問題は、2列目の配列に新しい列を追加することにあるようです。これまでのところ、私が持っている:

String[][] tempArray = new String[array.length][array.length+1]; 

私はその後、長いtempArray 1つの余分な列内の規則的な配列arrayのすべての要素を置きます。

私はできないようですが、何かのインデックスに新しい列を入れます。index

どうすればいいですか?ありがとう!

答えて

1

配列は本質的に動的ではないので、わかる限り、列を追加することはできません。潜在的な回避策として何ができるかは、1つの余分な列で別の配列を作成し、すべての値をその列にコピーすることです。

int index = 7; 
    String[][] array = new String[5][10]; 

    String[][] tempArray = Arrays.copyOf(array, array.length + 1); // New array with row size of old array + 1 

    tempArray[array.length] = new String[array[index].length]; // Initializing the new row 

    for(i=tempArray.length; i>=index; i--) 
    { 
     tempArray[i] = tempArray[i-1]; 
    } 

    tempArray[index] = new String[array[index].length]; 

私はあなたが他のデータ構造を使用してを嫌うであることを知っているが、あなたの心を変更する場合、ArrayListの使用を検討してください。

+0

これは私が探していることです。値を大きな配列に移動します。真ん中の空の列の空き領域を確保するために、配列の右側にあるすべての数値をシフトするアルゴリズムが必要です。 – 26hmkk

+0

そして、 'index'の新しい列を空にしますか?または、最後の列を空にしますか? –

+0

ええ、新しい空の列が 'index'の位置にくるようにします。 – 26hmkk