Java-配列
Java はデータ構造、配列を提供します 、同じ型の要素の固定サイズの順次コレクションを格納します。配列はデータのコレクションを格納するために使用されますが、多くの場合、配列を同じ型の変数のコレクションと考える方が便利です.
number0、number1、...、number99 などの個々の変数を宣言する代わりに、numbers などの 1 つの配列変数を宣言し、numbers[0]、numbers[1]、および ...、numbers[99] を使用して表現します。個々の変数
このチュートリアルでは、配列変数を宣言し、配列を作成し、インデックス付き変数を使用して配列を処理する方法を紹介します。
配列変数の宣言
プログラムで配列を使用するには、配列を参照する変数を宣言し、変数が参照できる配列の型を指定する必要があります。配列変数を宣言するための構文は次のとおりです-
構文
dataType[] arrayRefVar; // preferred way. or dataType arrayRefVar[]; // works but not preferred way.
注意 − スタイル dataType[] arrayRefVar が好ましい。スタイル dataType arrayRefVar[] C/C++ から来ています。 C/C++言語に対応するためにJavaで採用されました。プログラマー。
例
次のコード スニペットは、この構文の例です −
double[] myList; // preferred way. or double myList[]; // works but not preferred way.
配列の作成
次の構文で new 演算子を使用して配列を作成できます −
構文
arrayRefVar = new dataType[arraySize];
上記のステートメントは 2 つのことを行います −
- <リ>
new dataType[arraySize] を使用して配列を作成します。
<リ>新しく作成された配列の参照を変数 arrayRefVar に割り当てます。
以下に示すように、配列変数の宣言、配列の作成、および配列の参照の変数への割り当ては、1 つのステートメントに組み合わせることができます −
dataType[] arrayRefVar = new dataType[arraySize];
または、次のように配列を作成することもできます −
dataType[] arrayRefVar = {value0, value1, ..., valuek};
配列要素は index を介してアクセスされます .配列インデックスは 0 ベースです。つまり、0 から arrayRefVar.length-1 までです。 .
例
次のステートメントは、配列変数 myList を宣言し、double 型の 10 個の要素の配列を作成し、その参照を myList に割り当てます −
double[] myList = new double[10];
次の図は、配列 myList を表しています。ここで、myList は 10 個の double 値を保持し、インデックスは 0 から 9 です。
配列の処理
配列要素を処理するとき、よく for を使用します ループまたは foreach 配列内のすべての要素が同じ型であり、配列のサイズがわかっているため、ループします。
例
配列を作成、初期化、および処理する方法を示す完全な例を次に示します −
ライブデモpublic class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // Summing all elements double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // Finding the largest element double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } }
これにより、次の結果が生成されます-
出力
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
foreach ループ
JDK 1.5 では、foreach ループまたは拡張 for ループと呼ばれる新しい for ループが導入されました。これにより、インデックス変数を使用せずに完全な配列を順番にトラバースできます。
例
次のコードは、配列 myList 内のすべての要素を表示します −
ライブデモpublic class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (double element: myList) { System.out.println(element); } } }
これにより、次の結果が生成されます-
出力
1.9 2.9 3.4 3.5
配列をメソッドに渡す
プリミティブ型の値をメソッドに渡すことができるのと同様に、配列をメソッドに渡すこともできます。たとえば、次のメソッドは要素を int で表示します 配列 −
例
public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } }
配列を渡すことで呼び出すことができます。たとえば、次のステートメントは printArray メソッドを呼び出して、3、1、2、6、4、および 2 を表示します −
例
printArray(new int[]{3, 1, 2, 6, 4, 2});
メソッドから配列を返す
メソッドは配列を返すこともあります。たとえば、次のメソッドは、別の配列の反転である配列を返します-
例
public static int[] reverse(int[] list) { int[] result = new int[list.length]; for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; } return result; }
配列クラス
java.util.Arrays クラスには、配列の並べ替えと検索、配列の比較、および配列要素の入力を行うためのさまざまな静的メソッドが含まれています。これらのメソッドは、すべてのプリミティブ型に対してオーバーロードされています。
Sr.No. | 方法と説明 |
---|---|
1 | public static int binarySearch(Object[] a, Object key) 二分探索アルゴリズムを使用して、指定された Object の配列 ( Byte、Int 、double など) から指定された値を検索します。この呼び出しを行う前に、配列をソートする必要があります。検索キーがリストに含まれている場合は、検索キーのインデックスを返します。それ以外の場合は、( – (挿入ポイント + 1)) を返します。 |
2 | public static boolean equals(long[] a, long[] a2) 指定された 2 つの long 配列が互いに等しい場合に true を返します。 2 つの配列が同じ数の要素を含み、2 つの配列内の対応するすべての要素のペアが等しい場合、2 つの配列は等しいと見なされます。 2 つの配列が等しい場合、これは true を返します。他のすべてのプリミティブ データ型 (Byte、short、Int など) でも同じメソッドを使用できます。 |
3 | public static void fill(int[] a, int val) 指定された int の配列の各要素に、指定された int 値を割り当てます。他のすべてのプリミティブ データ型 (Byte、short、Int など) でも同じメソッドを使用できます。 |
4 | public static void sort(Object[] a) 要素の自然な順序付けに従って、指定されたオブジェクトの配列を昇順に並べ替えます。他のすべてのプリミティブ データ型 (Byte、short、Int など) でも同じ方法を使用できます。 |
Java