Javaで配列をサブ配列に分割する方法


Javaで配列をサブ配列に分割する方法には、さまざまなアプローチがあります。以下に、いくつかのシンプルで簡単な方法とコード例を示します。

  1. forループを使用した方法:

    int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int subarraySize = 3;
    int startIndex = 0;
    for (int i = 0; i < array.length; i += subarraySize) {
       int endIndex = Math.min(i + subarraySize, array.length);
       int[] subarray = Arrays.copyOfRange(array, i, endIndex);
       // サブ配列の処理
       System.out.println(Arrays.toString(subarray));
    }
  2. ArrayListを使用した方法:

    int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int subarraySize = 3;
    ArrayList<int[]> subarrays = new ArrayList<>();
    for (int i = 0; i < array.length; i += subarraySize) {
       int endIndex = Math.min(i + subarraySize, array.length);
       int[] subarray = Arrays.copyOfRange(array, i, endIndex);
       subarrays.add(subarray);
    }
    // サブ配列の処理
    for (int[] subarray : subarrays) {
       System.out.println(Arrays.toString(subarray));
    }
  3. Stream APIを使用した方法 (Java 8以降):

    int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int subarraySize = 3;
    IntStream.range(0, (array.length + subarraySize - 1) / subarraySize)
       .mapToObj(i -> Arrays.copyOfRange(array, i * subarraySize, Math.min((i + 1) * subarraySize, array.length)))
       .forEach(subarray -> System.out.println(Arrays.toString(subarray)));

これらの方法を使用すると、Javaで配列をサブ配列に簡単に分割できます。適宜、サブ配列の処理を追加してください。また、サブ配列のサイズや元の配列の要素数によって、コードを調整することができます。