Java ですべての配列要素をゼロに初期化する

Mohammad Irfan 2023年10月12日
  1. Java で配列要素をゼロに初期化する
  2. Java で fill() メソッドを使用して配列要素をゼロに初期化する
  3. Java で nCopies() メソッドを使用して配列要素をゼロに初期化する
  4. Java での再割り当てにより、配列要素をゼロに初期化する
  5. Java で for ループを使用して配列要素をゼロに初期化する
Java ですべての配列要素をゼロに初期化する

このチュートリアルでは、Java ですべての配列要素をゼロに初期化する方法に関するプログラムを紹介します。このプロセスをガイドするのに役立つサンプルコードがあります。

Java では、配列は同様のタイプのデータを保持します。このオブジェクトは、実行時にコンパイラによって初期化されます。その値は配列のタイプによって異なります—これは、整数配列が 0 に初期化され、文字列配列が null になることを意味します。この例では、fill()nCopies() などのメソッドといくつかのカスタムコードを使用して、配列要素をゼロに初期化します。

Java で配列要素をゼロに初期化する

Java のデフォルトでは、int、short、byte、long 配列などのデータ型は 0 で初期化されます。したがって、これらの型の新しい配列を作成する場合、すでにデフォルト設定になっているため、ゼロで初期化する必要はありません。以下の例では、int タイプと byte タイプの 2つの配列を作成し、それらのデフォルト値がゼロであることを確認しています。

public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[2];
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
    byte barr[] = new byte[2];
    for (int i = 0; i < barr.length; i++) {
      System.out.println(barr[i]);
    }
  }
}

出力:

0
0
0
0

Java で fill() メソッドを使用して配列要素をゼロに初期化する

配列にすでに要素があり、それを 0 で初期化する場合は、指定された値を配列に入力する Arrays クラスの fill() メソッドを使用する必要があります。以下の例を参照してください。

import java.util.Arrays;
public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 23, 45, 58};
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
    System.out.println("Array after initialize to zero");
    Arrays.fill(arr, 0);
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
}

出力:

12
23
45
58
Array after initialize to zero
0
0
0
0

Java で nCopies() メソッドを使用して配列要素をゼロに初期化する

ここでは、配列のコピーを作成する Collections クラスの nCopies() メソッドを使用し、toArray() メソッドは要素を整数配列に変換します。以下の例を参照してください。

import java.util.Collections;
public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 23, 45, 58};
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
    System.out.println("Array after initialize to zero");
    Integer[] arr2 = Collections.nCopies(arr.length, 0).toArray(new Integer[0]);
    for (int i = 0; i < arr2.length; i++) {
      System.out.println(arr2[i]);
    }
  }
}

出力:

12
23
45
58
Array after initialize to zero
0
0
0
0

Java での再割り当てにより、配列要素をゼロに初期化する

この方法は、同じサイズとタイプの新しい配列を作成し、その参照を元の配列に割り当てて元の配列をリセットする、新しいトリッキーなソリューションです。その結果、すべての要素が 0 に初期化されます。例を次に示します。

public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 23, 45, 58};
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
    int[] arr2 = new int[4];
    arr = arr2;
    System.out.println("Array after initialize to zero");
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
}

出力:

12
23
45
58
Array after initialize to zero
0
0
0
0

Java で for ループを使用して配列要素をゼロに初期化する

このプロセスは、for ループを使用している、古くて最も推奨されていないアプローチの 1つです。各反復で、配列のすべての要素を 0 に初期化する配列の各インデックスに 0 を割り当てます。サンプルとしてこのコードブロックを確認してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 23, 45, 58};
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
    System.out.println("Array after initialize to zero");
    for (int i = 0; i < arr.length; i++) {
      arr[i] = 0;
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
}

出力:

12
23
45
58
Array after initialize to zero
0
0
0
0

関連記事 - Java Array