Java で現在の要素を維持しながら、配列のサイズを変更する

Mohammad Irfan 2023年10月12日
  1. Java で配列のサイズを変更する
  2. Java で arraycopy() メソッドを使用して配列のサイズを変更する
  3. Java で copyOf() メソッドを使用して配列のサイズを変更する
  4. Java で for ループを使用して配列のサイズを変更する
Java で現在の要素を維持しながら、配列のサイズを変更する

このチュートリアルでは、現在のすべての要素を Java で保持しながら、配列のサイズを変更する方法を紹介します。このフィールドでプログラムを実行するときに参照できるサンプルプログラムをいくつか含めました。

配列は、Java で同様のタイプの要素を格納するために使用されるコンテナとして定義されます。これは固定サイズのコンテナーです。つまり、配列のサイズが 10 の場合、格納できる要素は 10 個のみです。これは配列の制限の 1つです。

この記事では、arraycopy()copyOf() 関数などの組み込みメソッドといくつかのカスタムコードを使用して、配列のサイズを変更する方法を学習します。

Java で配列のサイズを変更する

動的配列の最上位の代替は、任意の数の要素を格納でき、動的に成長するコレクションフレームワークの ArrayList クラスです。最初にできることは、ArrayList を作成し、それにすべての配列要素をコピーすることです。ついに、新しいサイズの配列ができました。以下の例を参照してください。

import java.util.ArrayList;
import java.util.List;
public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 34, 21, 33, 22, 55};
    for (int a : arr) {
      System.out.print(a + " ");
    }
    List<Integer> list = new ArrayList<>();
    for (int a : arr) {
      list.add(a);
    }
    System.out.println("\n" + list);
    list.add(100);
    System.out.println(list);
  }
}

出力:

12 34 21 33 22 55 
[12, 34, 21, 33, 22, 55]
[12, 34, 21, 33, 22, 55, 100]

Java で arraycopy() メソッドを使用して配列のサイズを変更する

Java は、System クラスに属し、配列のコピーを作成するために使用できるメソッド arraycopy() を提供します。この例では、より大きなサイズの新しい配列を作成し、arraycopy() メソッドを使用して、元のすべての配列要素をその配列にコピーしています。以下のサンプルプログラムに従ってください。

public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 34, 21, 33, 22, 55};
    for (int a : arr) {
      System.out.print(a + " ");
    }
    int arr2[] = new int[10];
    System.arraycopy(arr, 0, arr2, 0, arr.length);
    System.out.println();
    for (int a : arr2) {
      System.out.print(a + " ");
    }
    System.out.println();
    arr2[6] = 100;
    for (int a : arr2) {
      System.out.print(a + " ");
    }
  }
}

出力:

12 34 21 33 22 55
12 34 21 33 22 55 0 0 0 0
12 34 21 33 22 55 100 0 0 0

Java で copyOf() メソッドを使用して配列のサイズを変更する

Java の Arrays クラスはメソッド copyOf() を提供します。このメソッドを使用して、元の配列要素をすべてコピーすることにより、新しいサイズの配列を作成できます。このプロセスには 2つの引数があります。1つ目は元の配列で、2つ目は新しい配列のサイズです。以下の例を参照してください。

import java.util.Arrays;
public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 34, 21, 33, 22, 55};
    for (int a : arr) {
      System.out.print(a + " ");
    }
    int arr2[] = Arrays.copyOf(arr, 10);
    System.out.println();
    for (int a : arr2) {
      System.out.print(a + " ");
    }
    System.out.println();
    arr2[6] = 100;
    for (int a : arr2) {
      System.out.print(a + " ");
    }
  }
}

出力:

12 34 21 33 22 55 
12 34 21 33 22 55 0 0 0 0 
12 34 21 33 22 55 100 0 0 0 

Java で for ループを使用して配列のサイズを変更する

この方法は単純で、for ループを使用し、各反復で新しく作成された配列に元の配列要素を割り当てる古いアプローチです。より大きなサイズの新しい配列を作成し、ループを使用してすべての要素をその配列にコピーするだけです。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int arr[] = new int[] {12, 34, 21, 33, 22, 55};
    for (int a : arr) {
      System.out.print(a + " ");
    }
    int arr2[] = new int[10];
    for (int i = 0; i < arr.length; i++) {
      arr2[i] = arr[i];
    }
    System.out.println();
    for (int a : arr2) {
      System.out.print(a + " ");
    }
  }
}

出力:

12 34 21 33 22 55 
12 34 21 33 22 55 0 0 0 0

関連記事 - Java Array