Latest web development tutorials

Java配列

データ構造は、各プログラミング言語のいずれか配列は、もちろん、異なる言語およびアレイの実現プロセスは同じではない、重要です。

Java言語は、アレイは、同じ種類の固定サイズの要素を格納するために使用されています。

あなたは、このような数字などの変数、[100]の代わりに、直接ステートメント100独立変数のnumber0、数値1、...、number99の配列を宣言することができます。

このチュートリアルでは、宣言Java配列の作成と初期化を導入し、対応するコードを示します。


配列変数を宣言します

あなたが最初に作成したプログラムで配列を使用することができ、配列変数を宣言する必要があります。 ここで、配列変数を宣言するための構文は次のとおりです。

dataType[] arrayRefVar;   // 首选的方法

或

dataType arrayRefVar[];  // 效果相同,但不是首选方法

注:我々は、データ型[] arrayRefVarスタイル文は配列変数を宣言し使用することをお勧めします。 C / C ++言語由来のdataType arrayRefVar []スタイルは、JavaがすぐにJava言語を理解することができ、C / C ++プログラマを作るために使用されます。

ここでは、コードの例では、両方の構文は次のとおりです。

double[] myList;         // 首选的方法

或

double myList[];         //  效果相同,但不是首选方法

配列を作成します

次のように配列を作成するために、new演算子を使用して、Java言語は、構文は次のとおりです。

arrayRefVar = new dataType[arraySize];

上記の構文では、2つのことを行います:

  • まず、[配列サイズ]配列を作成し、データ型を使用してください。
  • 第二に、新しく作成された配列への参照を変数arrayRefVarに割り当てられます。

配列変数を宣言し、配列は次のように文を作成し、完了するために使用することができます。

dataType[] arrayRefVar = new dataType[arraySize];

さらに、次の方法を使用して配列を作成することができます。

dataType[] arrayRefVar = {value0, value1, ..., valuek};

配列の要素は索引を介してアクセスされます。 配列のインデックスは0から始まるので、arrayRefVar.length-1から0からのインデックス値。

まず、次の文は、10の要素を作成した後、配列変数マイリストを宣言し、double型の配列、およびマイリスト変数に割り当てられ、その参照が含まれています。

public class TestArray {

   public static void main(String[] args) {
      // 数组大小
      int size = 10;
      // 定义数组
      double[] myList = new double[size];
      myList[0] = 5.6;
      myList[1] = 4.5;
      myList[2] = 3.3;
      myList[3] = 13.2;
      myList[4] = 4.0;
      myList[5] = 34.33;
      myList[6] = 34.0;
      myList[7] = 45.45;
      myList[8] = 99.993;
      myList[9] = 11123;
      // 计算所有元素的总和
      double total = 0;
      for (int i = 0; i < size; i++) {
         total += myList[i];
      }
      System.out.println("总和为: " + total);
   }
}

上の例の出力は、次のとおりです。

总和为: 11367.373

以下の画像は、アレイマイリストを示しています。 ここマイリスト、10 double配列の要素を持っている0-9からそのインデックス。

Javaの配列構造の説明


配列の操作

配列の配列要素のサイズと種類を決定し、そのように配列の要素を処理するとき、我々は通常、基本的なループやforeachループを使用しています。

この例では、初期化し、配列を操作する、完全なを作成する方法を示しています。

public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // 打印所有数组元素
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
      // 计算所有元素的总和
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      // 查找最大元素
      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ループまたは拡張循環と呼ばれる、それは配列の添字を通じての環境下で使用されていない、ループの新しいタイプを導入しました。

この例では、アレイマイリスト内のすべての要素を表示するために使用されます。

public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // 打印所有数组元素
      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クラスは、簡単に、それはすべてのメソッドが静的で提供して、配列を操作することができます。 それは次の機能があります。

  • 配列の代入に:メソッドを埋めるために。
  • 配列のソート:ソート方法を介して、昇順で。
  • 配列の比較:ザ・メソッドが比較的ある配列要素の値が等しい等しいです。
  • 配列要素を検索:binarySearch方法によってバイナリ検索操作の配列をソートすることができます。

具体的な手順は、次の表を参照してください。

いいえ。 メソッドと説明
1 パブリックstatic int型binarySearch(オブジェクト[] 、オブジェクトキー)
与えられた値(バイト、INT、ダブル、など)のために与えられた配列の検索でオブジェクトを使用してバイナリ検索アルゴリズム。 アレイは、呼び出す前にソートする必要があります。 ルックアップ値が配列、検索キーリターンのインデックスに含まれている場合は、それ以外の場合は( - (挿入ポイント) - 1)。
2 パブリック静的ブールのequals(ロング[] 、長い[] a2)は、
互いに等しい longの指定された2つの配列の場合は、trueを返します。 両方の配列が同じ数の要素を含み、すべての要素に対応するペアの二つの配列が同じである場合、二つの配列が等しいと見なされています。 つまり、二つの配列の同じ要素が含まれているのと同じ順序で2つの配列が同等である場合。 同じことが他のすべての基本データ型(バイト、ショート、INT、等)に適用されます。
3 パブリック静的ボイドフィル(int型[] 、int型のval)
int型の値は、各要素の指定された範囲の指定されたint配列を割り当てます。 同じことが他のすべての基本データ型(バイト、ショート、INT、等)に適用されます。
4 パブリック静的ボイドソート(オブジェクト[] a)は、
その要素の自然順序付けに従って昇順に、指定されたオブジェクトの配列。 同じことが他のすべての基本データ型(バイト、ショート、INT、等)に適用されます。