ホームページ  >  記事  >  Java  >  Java で ArrayList をより小さい ArrayList に分割するにはどうすればよいですか?

Java で ArrayList をより小さい ArrayList に分割するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-15 03:39:02405ブラウズ

How to Split an ArrayList into Smaller ArrayLists in Java?

Java で ArrayList をより小さい ArrayList に分割する

大きな ArrayList を複数の小さな ArrayList に分割することは、さまざまなプログラミング シナリオで不可欠です。 Java でこれを実現するには、subList(int fromIndex, int toIndex) メソッドを利用できます。

subList メソッド

subList メソッドを使用すると、次の部分を取得できます。元のリスト。 fromIndex から始まり toIndex までの指定された範囲の要素のビューが作成されます。

使用例

説明のために、次のコードを考えてみましょう。

List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7));

List<Integer> head = numbers.subList(0, 4);
List<Integer> tail = numbers.subList(4, 8);

System.out.println(head); // prints "[5, 3, 1, 2]"
System.out.println(tail); // prints "[9, 5, 0, 7]"

非ビューの作成サブリスト

分割されたリストを非ビューにする必要がある場合は、サブリストから新しいリストを作成するだけです。以下に例を示します。

// Chops a list into non-view sublists of length L
static <T> List<List<T>> chopped(List<T> list, final int L) {
    List<List<T>> parts = new ArrayList<>();
    final int N = list.size();
    for (int i = 0; i < N; i += L) {
        parts.add(new ArrayList<>(list.subList(i, Math.min(N, i + L))));
    }
    return parts;
}

List<Integer> numbers = Collections.unmodifiableList(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7));
List<List<Integer>> parts = chopped(numbers, 3);

System.out.println(parts); // prints "[[5, 3, 1], [2, 9, 5], [0, 7]]"

このメソッドは非ビュー サブリストのリストを返し、元のリストに影響を与えることなくサブリストを変更できます。

以上がJava で ArrayList をより小さい ArrayList に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。