[Java の基礎] 配列アプリケーションとソース コード分析

シリーズ記事ディレクトリ

【Javaの基礎】StringBuffer、StringBuilderクラスのアプリケーションとソースコード解析
【Javaの基礎】配列アプリケーションとソースコードの解析
【Javaの基礎】文字列、メモリアドレス、ソースコードの解析



序文

配列はあらゆるプログラミング言語にとって重要なデータ構造の 1 つであり、当然のことながら、言語が異なれば配列の実装や処理も異なります。
Java 言語で提供される配列は、同じ型の要素を固定サイズで格納するために使用されます。
100 個の独立変数 (number0、number1、...、number99) を直接宣言する代わりに、numbers[100] などの配列変数を宣言できます。
このチュートリアルでは、Java 配列の宣言、作成、初期化を紹介し、対応するコードを示します。

1. 配列変数を宣言する

配列変数をプログラムで使用するには、まず配列変数を宣言する必要があります。配列変数を宣言するための構文は次のとおりです。

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

或

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

注: 配列変数を宣言するには、dataType[] arrayRefVar の宣言スタイルを使用することをお勧めします。dataType arrayRefVar[] スタイルは C/C++ 言語に由来しており、C/C++ プログラマーが Java 言語をすぐに理解できるように Java で採用されています。
両方の構文のコード例を次に示します。

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

2. 配列を作成する

Java 言語は new 演算子を使用して配列を作成します。構文は次のとおりです。

arrayRefVar = new dataType[arraySize];

上記の構文ステートメントは、次の 2 つのことを行います。
● 1. dataType[arraySize] を使用して配列が作成されます。
● 2. 新しく作成した配列の参照を変数 arrayRefVar に代入します。

配列変数の宣言と配列の作成は、次のように 1 つのステートメントで実行できます。

dataType[] arrayRefVar = new dataType[arraySize];

さらに、次の方法で配列を作成することもできます。

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

配列の要素にはインデックスによってアクセスします。配列インデックスは 0 から始まるため、インデックス値の範囲は 0 から arrayRefVar.length-1 までになります。
次のステートメントは、まず配列変数 myList を宣言し、次に double 型の 10 個の要素を含む配列を作成し、その参照を myList 変数に割り当てます。

public class TestArray {
    
     
    public static void main(String[] args) {
    
    
        // 数组大小
        int size = 10;
        // 定义数组
        double[] myList = new double[size];
        myList[0] = 1.2;
        myList[1] = 2.3;
        myList[2] = 3.4;
        myList[3] = 4.5;
        myList[4] = 5.6;
        myList[5] = 6.7;
        myList[6] = 7.8;
        myList[7] = 8.9;
        myList[8] = 99.10;
        myList[9] = 10000;
        System.out.println("数组: " + Arrays.toString(myList));
    }
}

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

配列: [1.2、2.3、3.4、4.5、5.6、6.7、7.8、8.9、99.1、10000.0]

3. For-Each ループで、配列内のデータを出力します。

このインスタンスは、配列 myList 内のすべての要素を表示するために使用されます。

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);
        }
    }
}

4. 配列ツールクラス

java.util.Arrays クラスは配列の操作を容易にし、それによって提供されるすべてのメソッドは静的です。
次の機能があります。

  • 配列への代入: fill メソッドによる。
  • 配列をソートします。sort メソッドを使用して昇順に並べます。
  • 配列の比較: 配列内の要素の値が等しいかどうかを比較するには、equals メソッドを使用します。
  • 配列要素の検索: binarySearch メソッドを使用して、ソートされた配列に対して二分検索操作を実行できます。
シリアルナンバー 方法と指示
1 public static int binarySearch(Object[] a, Object key) は、
バイナリ検索アルゴリズムを使用して、指定された配列内の指定された値のオブジェクト (Byte、Int、double など) を検索します。配列は呼び出す前にソートする必要があります。ルックアップ値が配列に含まれている場合は検索キーのインデックスを返し、それ以外の場合は (-(挿入ポイント) - 1) を返します。
2 public static booleanquals(long[] a, long[] a2)
指定された 2 つの long 配列が互いに等しい場合、true を返します。2 つの配列に同じ数の要素が含まれており、両方の配列内の対応する要素のペアがすべて等しい場合、2 つの配列は等しいとみなされます。つまり、2 つの配列に同じ要素が同じ順序で含まれている場合、それらの配列は等しいと言えます。同じアプローチは、他のすべてのプリミティブ データ型 (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 など) にも機能します。

このインスタンスは、配列 myList をソートするために使用されます。

public class TestArray {
    
    
    public static void main(String[] args) {
    
    
        double[] myList = {
    
    5.2, 1.9, 1.7, 4.4, 3.5};

        // 打印所有数组元素 - 排序前
        for (double element: myList) {
    
    
            System.out.println(element);
        }
        System.out.println("-----------------");
        Arrays.sort(myList);
        // 打印所有数组元素 - 排序后
        for (double element: myList) {
    
    
            System.out.println(element);
        }

    }
}

5. 配列演算

配列の追加、削除、クエリ、変更操作

public static void main(String[] args) {
    
    
        // 数组大小
        int size = 10;
        // 定义数组
        Integer[] myList = new Integer[size];
        //增加数据
        for (int i = 0; i < size; i++) {
    
    
            myList[i] = new Random().nextInt(100);
        }
        System.out.println("数组: " + Arrays.toString(myList));
        System.out.println("数组数据长度: " + myList.length );
        System.out.println("--------------------------------");

        //删除数据
        myList[8] = null;
        System.out.println("数组: " + Arrays.toString(myList));
        System.out.println("数组数据长度: " + myList.length );
        System.out.println("--------------------------------");

        //修改数据
        myList[8] = 100;
        System.out.println("数组: " + Arrays.toString(myList));
        System.out.println("数组数据长度: " + myList.length );
        System.out.println("--------------------------------");

    }

おすすめ

転載: blog.csdn.net/s445320/article/details/131576957