私は2次元、3次元、4次元の配列を持っています。 (異なる時間ですべて)
私は4つの2次元アレイ(1×4の4つの2x2の)を連結する場合は、私は簡単なループでこれを行うことができJavaで多次元配列を連結する最良の方法は何ですか?
int[][] result = new int[2 * array1.length][2 * array1.length];
for(int x = 0; x < array1.length; x++)
for(int y = 0; y < array1.length; y++)
result[x][y] = array1[x][y];
for(int x = array1.length; x < result.length; x++)
for(int y = 0; y < array1.length; y++)
result[x][y] = array2[x - array1.length][y];
...
あなたが見ることができるように、これは非常に厄介取得します(2^nループの集合。ここでnは次元の数です)。私はSystem.arraycopyでこれを単純化することができますが、私はまだ多くのループセットが必要です。
これを行うための簡単な方法はありますか?好ましくは、すべての次元の配列のために働くもの?
もう1つの次元の最後に1つずつ追加するのではなく、各次元に追加することに注意してください。 私がしていることを視覚化するには、各2D配列を正方形として、各3D配列を立方体として想像してください。それらを結合するには、2×2の正方形(各単位が1つの2D配列)または2×2×2の立方体(各単位は1つの3D配列)を形成するようにそれらを結合します。
ここでは、2Dの組み合わせの見栄えの悪い描写があります。
|--| + |--| + |--| + |--| = |--|--|
|--| |--| |--| |--| |--|--|
. |--|--|
AとBが2つの2×2のディムマトリクスである場合、Aは[1 2] _ [3 4]であり、Bは[5 6] _ [7 8](この1行の表記A(1,1)は1とA(2,1)は3です)上記のループの出力は[1 2 0 0] _ [3 4 0 0] _ [5 6 0 0] _ [7 8 0 0]になります。これはあなたの希望する出力ですか? – hanif
なぜ2次元配列の4次元配列を作成したいのですか? – eldo
配列は常にint型ですか?すべての次元で常に同じサイズ(2 x 2または3 x 3、決して2 x 3) 3次元配列と4次元配列で何をしたいですか? –