multidimensional arrays java 2d
Javaの多次元配列に関するこのチュートリアルでは、Javaで2Dおよび3D配列を初期化、アクセス、および印刷する方法について、構文とコード例を使用して説明します。
これまで、1次元配列に関する主要な概念について説明してきました。これらの配列は、同じデータ型の要素の単一のシーケンスまたはリストを格納します。
Javaは、複数の次元を持つ配列もサポートしており、これらは多次元配列と呼ばれます。
=> ここですべてのJavaチュートリアルを確認してください。
Java多次元配列は、配列の配列として配置されます。つまり、多次元配列の各要素は別の配列です。要素の表現は行と列にあります。したがって、行サイズに列サイズを掛けることで、多次元配列内の要素の総数を取得できます。
したがって、3×4の2次元配列がある場合、この配列の要素の総数= 3×4 = 12です。
このチュートリアルでは、Javaの多次元配列について説明します。 3次元以上の配列に移行する前に、まず2次元配列について説明しましょう。
学習内容:
2次元配列
多次元配列の中で最も単純なのは2次元配列です。 2D配列の簡単な定義は次のとおりです。2D配列は1次元配列の配列です。
Javaでは、2次元配列は行と列の形式で格納され、行列の形式で表されます。
2次元配列の一般的な宣言は、
ソフトウェアテストにおける根本原因分析
data_type () () array_name;ここに、
data_type =配列に格納される要素のデータ型。
array_name = 2次元配列の名前。
次のように、newを使用して2D配列を作成できます。
data_type () () array_name = new data_type(row_size)(column_size);ここに、
row_size =配列に含まれる行数。
column_size =配列に含まれる列の数。
したがって、3×3の配列がある場合、これは3行3列になることを意味します。
このアレイのレイアウトは次のようになります。
| 行/列 | 列1 | 列2 | 列3 |
|---|---|---|---|
| 行1 | (0,0) | (0.1) | (0.2) |
| 行2 | (1.0) | (1,1) | (1,2) |
| 行3 | (2.0) | (2.1) | (2.2) |
上に示したように、行と列の各交点には2D配列の要素が格納されます。したがって、2D配列の最初の要素にアクセスする場合は、(0、0)で指定されます。
注意 配列サイズが3×3であるため、この配列には9つの要素を含めることができます。
3行2列の「myarray」という名前の整数配列は次のように宣言できます。
int ()() myarray = new int(3)(2);配列が宣言されて作成されたら、値で初期化します。
2D配列を初期化する
2D配列を値で初期化するにはさまざまな方法があります。最初の方法は、各要素に値を割り当てる従来の方法です。
初期化の一般的な構文は次のとおりです。
array_name(row_index)(column_index) = value;例:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1; 上記のステートメントは、指定された2D配列のすべての要素を初期化します。
それをプログラムに入れて、出力を確認しましょう。
public class Main { public static void main(String() args) { int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1; System.out.println('Array elements are:'); System.out.println(myarray(0)(0) + ' ' +myarray(0)(1)); System.out.println(myarray(1)(0) + ' ' +myarray(1)(1)); } } 出力:

この方法は、関連する寸法が小さい場合に役立つことがあります。配列の次元が大きくなるにつれて、要素を個別に初期化するこの方法を使用することは困難です。
Javaで2D配列を初期化する次の方法は、宣言時にのみ配列を初期化することです。
この初期化メソッドの一般的な構文は次のとおりです。
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}}; 例えば、 int型の2×3配列がある場合は、 次のように宣言して初期化できます。
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};次の例は、初期化を伴う2D配列宣言を示しています。
public class Main { public static void main(String() args) { //2-d array initialised with values int()() intArray = { { 1, 2 }, { 3, 4 },{5,6}}; //print the array System.out.println('Initialized Two dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { System.out.print(intArray (i)(j) + ' '); } System.out.println(); } } } 出力:

上記のプログラムでは、宣言自体の時点で配列が初期化され、値が表示されます。
以下に示すように、ループを使用して値を初期化するか、2D配列に割り当てることもできます。
int()() intArray = new int(3)(3); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; } } 次のプログラムは、上記のコードを実装します。
public class Main { public static void main(String() args) { //declare an array of int int()() intArray = new int(3)(3); System.out.println('Array elements are:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; //assign values to each array element System.out.print(intArray(i)(j) + ' '); //print each element } System.out.println(); } } } 出力:

上記の2D配列の各要素には、値「i +1」が割り当てられます。これにより、配列の行の各要素に同じ値が含まれるようになります。
2D配列へのアクセスと印刷
2D配列を初期化するときに、配列の個々の要素を値に初期化できることは既にご存知でしょう。これは、配列の行インデックスと列インデックスを使用して特定の要素にアクセスすることによって行われます。
初期化と同様に、個々の要素の値にアクセスしてユーザーに出力することもできます。
配列要素にアクセスするための一般的な構文は次のとおりです。
data_typeval = array_name(row_index)(column_index);ここで、array_nameは要素がアクセスされる配列であり、data_typeは配列のデータ型と同じです。
次のプログラムは、個々の要素にアクセスして印刷する方法を示しています。
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = {{1,2},{4,8}}; //Access individual element of array intval = intArray(0)(1); //print the element System.out.println('Accessed array value = ' + val); System.out.println('Contents of Array:' ); //print individual elements of array System.out.println(intArray(0)(0) + ' ' + intArray(0)(1)); System.out.println(intArray(1)(0) + ' ' + intArray(1)(1)); } } 出力:

このようにして、角かっこ(())で囲まれた行と列のインデックスを使用して、個々の配列要素に簡単にアクセスして印刷できます。
forループを使用して、上記のように配列全体を表形式(マトリックス形式とも呼ばれます)で一度に印刷できます。これは2次元配列であるため、これには2つのループが必要です。行を反復する1つのループ、つまり列をトラバースするための外側のループと内側のループ。
DevOpsでの継続的デプロイのためのツール
任意の瞬間(現在の反復)で、配列内の特定の要素は、によって与えられます。
array_name (i) (j);
ここで、「i」は現在の行、「j」は現在の列です。
次のプログラムは、「for」ループを使用した2D配列の印刷を示しています。
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i*j; //assign value to each array element System.out.print(intArray (i)(j) + ' '); } System.out.println(''); } } } 出力:

上記のプログラムでは、2D配列が初期化されてから、2つのforループを使用して要素が出力されます。外側のforループは行を追跡するために使用され、内側のforループはfor列に使用されます。
Java2D配列の長さ
2次元配列は、1次元配列の配列として定義されます。したがって、2次元配列の長さが必要な場合、1次元配列ほど単純ではありません。
2次元配列のlengthプロパティは、配列の行数を返します。各行は1次元配列です。 2次元配列が行と列で構成されていることはすでにご存知でしょう。列のサイズは行ごとに異なる場合があります。
したがって、行数を繰り返すことで、各行のサイズを取得できます。
次のプログラムは、配列の長さ(行数)と各行のサイズを示します。
public class Main { public static void main(String() args) { //initialize 2-d array int()() myArray = { { 1, 2, 3 }, { 4, 5 } }; System.out.println('length of array:' + myArray.length); //number of rows for(int i=0;i 出力:

上で定義された2次元配列には、2つの行があります。各行は1次元配列です。最初の1D配列には3つの要素(3列)があり、2番目の行には2つの要素があります。
次のJavaプログラムは、2次元配列を出力するためのlengthプロパティの使用法を示しています。
public class Main { public static void main(String() args) { //two dimensional array definition int()() myarray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i 出力:

すでに述べたように、外側のループは行を表し、内側のforループは列を表します。
注意: 両方のループの終了条件は、lengthプロパティを使用して、最初に行を繰り返し、次に列を繰り返します。
Java多次元配列
すでに2次元配列を見てきました。 Javaは、3次元以上の配列をサポートしています。
多次元配列の一般的な構文は次のとおりです。
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size); ここに、
d1、d2…dn =多次元配列の次元
(d1_size) (d2_size)…(dn_size) =寸法のそれぞれのサイズ
data_type =配列要素のデータ型
array_name =多次元配列の名前
2D配列以外のもう1つの多次元配列の例として、3次元(3D)配列の詳細について説明します。
Javaの3次元配列
配列の次元が大きくなると、配列はより複雑になることはすでに説明しました。 3次元配列は、多次元配列では複雑です。 3次元は、2次元配列の配列として定義できます。
3次元配列の一般的な定義を以下に示します。
data_type () () () array_name = new data_type (d1)(d2)(d3); ここに、
d1、d2、d3 =寸法のサイズ
data_type =配列の要素のデータ型
array_name = 3D配列の名前
3D配列定義の例は次のとおりです。
int () () () intArray = new int(2)(3)(4);上記の3D配列の定義は、2つのテーブルまたは配列、3つの行と4つの列があり、合計で最大2x3x4 = 24要素であると解釈できます。
これは、3D配列では、3次元が次のように解釈されることを意味します。
- テーブル/配列の数: 最初の次元は、3D配列が持つテーブルまたは配列の数を示します。
- 行数: 2番目の次元は、配列が持つ行の総数を示します。
- 列の数: 3番目の次元は、3D配列の列の合計を示します。
3D配列を初期化する
3D配列を初期化するために使用されるアプローチは、2次元配列を初期化するために使用されるアプローチと同じです。
個々の配列要素に値を割り当てて配列を初期化するか、宣言中に配列を初期化することができます。
以下の例は、宣言中の3D配列の初期化を示しています。
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { { { 1, 2, 3}, { 4, 5, 6 } , { 7, 8, 9 } } }; System.out.println ('3-d array is given below :'); //print the elements of array for (int i = 0; i <1; i++) for (int j = 0; j < 3; j++) for (int z = 0; z < 3; z++) System.out.println ('intArray (' + i + ')(' + j + ')(' + z + ') = ' + intArray (i)(j)(z)); } } 出力:

宣言中に3D配列を初期化した後、配列の個々の要素にアクセスして印刷しました。
アクセスして3Dアレイを印刷する
この場合も、3次元配列の配列要素の印刷とアクセスは、2次元配列の場合と同様です。
以下のプログラムは、forループを使用して配列要素にアクセスし、それらをコンソールに出力します。
public class Main { public static void main(String() args) { //initialize 3-d array int()()() myArray = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 1, 4, 9 }, { 16, 25, 36 } }, { { 1, 8, 27 }, { 64, 125, 216 } } }; System.out.println('3x2x3 array is given below:'); //print the 3-d array for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { System.out.print(myArray(i)(j)(k) + ' '); } System.out.println(); } System.out.println(); } } } 出力:

上記のプログラムは、3次元配列の表形式の表現を表示します。示されているように、これは3x2x3配列です。つまり、3つのテーブル、2つの行と3つの列、つまり18の要素があります。
列のサイズは多次元配列で変化する可能性があることはすでに述べました。以下の例は、さまざまな列サイズの3次元配列を示しています。
このプログラムは、拡張forループを使用して、配列をトラバースし、その要素を表示します。
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { {{10, 20, 30},{20, 40, 60}}, { {10, 30,50,70},{50},{80, 90}} }; System.out.println('Multidimensional Array (3-d) is as follows:'); // use for..each loop to iterate through elements of 3d array for (int()() array_2D: intArray) { for (int() array_1D: array_2D) { for(intelem: array_1D) { System.out.print(elem + ' '); } System.out.println(); } System.out.println(); } } } 出力:

使用される入力配列は、さまざまな長さの列を持つ3次元配列です。各次元で使用される拡張foreachループは、配列の内容を表形式で表示します。
よくある質問
Q#1)2次元配列とはどういう意味ですか?
回答: 2次元配列は配列の配列と呼ばれ、通常、行と列で構成される行列の形式で編成されます。 2次元配列は、主にリレーショナルデータベースまたは同様のデータ構造で使用されます。
Q#2)Javaの1次元配列とは何ですか?
回答: Javaの1次元配列は、インデックスが1つしかない配列です。これは、Javaで最も単純な形式の配列です。
Q#3)1次元配列と2次元配列の違いは何ですか?
回答: 1次元配列は、要素の単一のシーケンスを格納し、インデックスは1つだけです。 2次元配列は、要素の配列の配列を格納し、2つのインデックスを使用してその要素にアクセスします。
Q#4)二次元とはどういう意味ですか?
ルーターのネットワークキーとは
回答: 二次元とは、二次元しかないことを意味します。幾何学的な世界では、高さと幅だけを持つオブジェクトは2次元または2Dオブジェクトです。これらのオブジェクトには、厚みや奥行きはありません。
三角形、長方形などは2Dオブジェクトです。ソフトウェア用語では、2次元は依然として2次元を持つことを意味し、通常、1、2、またはそれ以上の次元を持つことができる配列のようなデータ構造を定義します。
Q#5)配列の最初に来るのは、行と列のどちらですか?
回答: 2次元配列は行列として表され、行列は通常、行x列で記述されます。 例えば、 サイズ2×3の行列は2行3列になります。したがって、2D配列の場合も、行が最初に来て、列が次に来ます。
結論
これはすべて、Javaの多次元配列に関するものでした。 2次元配列のすべての側面と、3次元以上の配列について説明しました。
多次元配列の場合、各要素は別の配列であるため、これらは通常、1つまたは複数の配列と呼ばれます。したがって、配列には別の配列または単に配列の配列が含まれていると言えます。
今後のチュートリアルでは、配列について詳しく調べてから、他のコレクションに移ります。
=> ここで簡単なJavaトレーニングシリーズに注意してください。
推奨読書




