Java 多次元配列
Java 多次元配列
このチュートリアルでは、例を使用して、2 次元配列と 3 次元配列を使用して Java 多次元配列について学習します。
多次元配列について学ぶ前に、Java 配列について知っておきましょう。
多次元配列は配列の配列です。多次元配列の各要素は配列そのものです。たとえば、
int[][] a = new int[3][4];
ここでは、a という名前の多次元配列を作成しました。 .これは、最大 12 個の要素を保持できる 2 次元配列です。
<図>Java はゼロから始まるインデックスを使用することに注意してください。つまり、Java の配列のインデックスは 1 ではなく 0 から始まります。
多次元配列の別の例を見てみましょう。今回は3次元配列を作成します。たとえば、
String[][][] data = new String[3][4][2];
ここでは、データ タイプ String
の最大 24 (3*4*2) 要素を保持できる 3D 配列です .
Java で 2 次元配列を初期化する方法
Java で 2 次元配列を初期化する方法は次のとおりです。
int[][] a = {
{1, 2, 3},
{4, 5, 6, 9},
{7},
};
ご覧のとおり、多次元配列の各要素は配列そのものです。また、C/C++ とは異なり、Java の多次元配列の各行の長さは異なる場合があります。
<図>例:2 次元配列
class MultidimensionalArray {
public static void main(String[] args) {
// create a 2d array
int[][] a = {
{1, 2, 3},
{4, 5, 6, 9},
{7},
};
// calculate the length of each row
System.out.println("Length of row 1: " + a[0].length);
System.out.println("Length of row 2: " + a[1].length);
System.out.println("Length of row 3: " + a[2].length);
}
}
出力 :
Length of row 1: 3 Length of row 2: 4 Length of row 3: 1
上記の例では、a という名前の多次元配列を作成しています。 .多次元配列の各コンポーネントも配列であるため (a[0]
、 a[1]
と a[2]
も配列です)。
ここでは、length
を使用しています。 各行の長さを計算する属性。
例:ループを使用して 2 次元配列のすべての要素を出力する
class MultidimensionalArray {
public static void main(String[] args) {
int[][] a = {
{1, -2, 3},
{-4, -5, 6, 9},
{7},
};
for (int i = 0; i < a.length; ++i) {
for(int j = 0; j < a[i].length; ++j) {
System.out.println(a[i][j]);
}
}
}
}
出力 :
1 -2 3 -4 -5 6 9 7
for...each ループを使用して、多次元配列の要素にアクセスすることもできます。たとえば、
class MultidimensionalArray {
public static void main(String[] args) {
// create a 2d array
int[][] a = {
{1, -2, 3},
{-4, -5, 6, 9},
{7},
};
// first for...each loop access the individual array
// inside the 2d array
for (int[] innerArray: a) {
// second for...each loop access each element inside the row
for(int data: innerArray) {
System.out.println(data);
}
}
}
}
出力 :
1 -2 3 -4 -5 6 9 7
上記の例では、a という名前の 2 次元配列を作成しています。 .次に for
を使用しました ループと for...each
ループして配列の各要素にアクセスします。
Java で 3D 配列を初期化する方法
Java で 3 次元配列を使用する方法を見てみましょう。 2 次元配列と同様に 3 次元配列を初期化できます。たとえば、
// test is a 3d array
int[][][] test = {
{
{1, -2, 3},
{2, 3, 4}
},
{
{-4, -5, 6, 9},
{1},
{2, 3}
}
};
基本的に、3 次元配列は 2 次元配列の配列です。 3 次元配列の行も、2 次元配列と同様に長さが異なる場合があります。
例:3 次元配列
class ThreeArray {
public static void main(String[] args) {
// create a 3d array
int[][][] test = {
{
{1, -2, 3},
{2, 3, 4}
},
{
{-4, -5, 6, 9},
{1},
{2, 3}
}
};
// for..each loop to iterate through elements of 3d array
for (int[][] array2D: test) {
for (int[] array1D: array2D) {
for(int item: array1D) {
System.out.println(item);
}
}
}
}
}
出力 :
1 -2 3 2 3 4 -4 -5 6 9 1 2 3
Java