Java-arrays

提供:Dev Guides
移動先:案内検索

Java-配列

Javaは、同じタイプの要素の固定サイズの順次コレクションを格納するデータ配列 array を提供します。 配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。

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つのことを行います-

  • 新しい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です。

Java配列

配列の処理

配列要素を処理するときは、配列のすべての要素が同じ型であり、配列のサイズがわかっているため、 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] + " ");
   }
}

配列を渡すことで呼び出すことができます。 たとえば、次のステートメントは、3、1、2、6、4、および2を表示するprintArrayメソッドを呼び出します-

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. Method & Description
1

public static int binarySearch(Object[] a, Object key)

バイナリ検索アルゴリズムを使用して、指定されたオブジェクト(Object、Byte、Int、doubleなど)の指定された配列を検索します。 この呼び出しを行う前に、配列をソートする必要があります。 リストに含まれている場合、検索キーのインデックスを返します。それ以外の場合は、(–(挿入ポイント&plus; 1))を返します。

2

public static boolean equals(long[] a, long[] a2)

指定された2つのlongの配列が互いに等しい場合、trueを返します。 両方の配列に同じ数の要素が含まれ、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など)で使用できます。