3次元配列とその先
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 7/59。
2次元配列(配列の配列)を作成できるのと同様に、3次元配列(配列の配列の配列)、4次元配列なども作成できます。これらは多次元配列と呼ばれます。
3 次元配列は、互いに積み重ねられた 2 次元配列の集合として視覚化でき、立方体のような構造を形成します。3 次元配列の各要素は、3 つのインデックスを使用してアクセスします:深さ(どの 2 次元配列か)、行、列の 1 つずつです。
Java で 3 次元配列を宣言および初期化する方法は以下の通りです:
data_type[][][] array_name = new data_type[depth][rows][columns];data_type: 配列が保持する要素の型です。array_name: 配列の名前です。
depth: 2D配列の数(深さ)。rows: 各2D配列の行数。columns: 各2D配列の列数。
例えば、2x3x4の寸法を持つ整数型の3次元配列を作成するには、次のように記述します:
int[][][] cube = new int[2][3][4];また、3次元配列を直接初期化することもできます:
int[][][] cube = {
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
},
{
{13, 14, 15, 16},
{17, 18, 19, 20},
{21, 22, 23, 24}
}
};チャレンジ
簡単3つの整数引数を取るプログラムを書いてください:depth、rows、cols。指定された寸法の整数3次元配列を作成し、配列の各要素をその深さ、行、列のインデックス(1から開始)の積で初期化してください。
例えば、[d][r][c] の要素は (d + 1) * (r + 1) * (c + 1) の値を持つべきです。
最後に、入れ子になったループを使用して結果の3次元配列をコンソールに出力してください。出力は次のようになるはずです:
Depth 0:
1 2 3 4
2 4 6 8
3 6 9 12
Depth 1:
2 4 6 8
4 8 12 16
6 12 18 24チートシート
3次元配列は配列の配列の配列であり、深さ、行、列を持つ立方体のような構造として視覚化されます。
宣言と初期化:
data_type[][][] array_name = new data_type[depth][rows][columns];例:
int[][][] cube = new int[2][3][4];直接初期化:
int[][][] cube = {
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
},
{
{13, 14, 15, 16},
{17, 18, 19, 20},
{21, 22, 23, 24}
}
};要素は3つのインデックスを使用してアクセスされます:array[depth][row][column]
自分で試してみよう
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int depth = scanner.nextInt();
int rows = scanner.nextInt();
int cols = scanner.nextInt();
int[][][] array3D = new int[depth][rows][cols];
// 以下にコードを記述してください
// 3D配列を出力
for (int d = 0; d < depth; d++) {
System.out.println("Depth " + d + ":");
for (int r = 0; r < rows; r++) {
for (int c = 0; c < cols; c++) {
System.out.print(array3D[d][r][c] + " ");
}
System.out.println();
}
}
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。