ホームページ >Java >&#&チュートリアル >Java で ArrayList を複数のサブリストに効率的に分割する方法

Java で ArrayList を複数のサブリストに効率的に分割する方法

DDD
DDDオリジナル
2024-11-15 08:34:02679ブラウズ

How to Efficiently Split an ArrayList into Multiple Sublists in Java?

ArrayList を複数のサブリストに分割する

Java では、ArrayList をより小さい、同じサイズのサブリストに効率的に分割できます。これは、一口サイズのチャンクでデータを処理または管理する必要があるシナリオで役立ちます。

subList() を使用してビューを作成する

の subList() メソッドArrayList クラスを使用すると、指定された範囲内の元のリストの一部のビューを取得できます。 subList() を呼び出しても、新しいリストは作成されませんが、既存のリストにビューが返されます。サブリストに加えた変更は元のリストに反映され、その逆も同様です。

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

List<Integer> head = numbers.subList(0, 4); // View from index 0 to index 3 (exclusive)
List<Integer> tail = numbers.subList(4, 8); // View from index 4 to index 7 (exclusive)

非表示サブリストの作成

サブリストを独立させる必要がある場合元のリストのサブリストから新しい ArrayList オブジェクトを明示的に作成できますviews.

List<List<Integer>> chopped = new ArrayList<>();
for (int i = 0; i < numbers.size(); i += L) {
    List<Integer> sublist = new ArrayList<>(
        numbers.subList(i, Math.min(numbers.size(), i + L))
    );
    chopped.add(sublist);
}

このアプローチでは、サブリストの深いコピーが作成され、分割されたサブリストへの変更が元のリストに影響を与えないようにします。

使用例

[5, 3, 1, 2, 9, 5, 0、7]。次のコードを使用して、このリストをサイズ 3 の 3 つのサブリストに分割できます:

List<List<Integer>> choppedLists = chopped(numbers, 3);

chopedLists 変数には 3 つのリストが含まれるようになります: [[5, 3, 1], [2, 9, 5] 、[0、7]]。元の数値リストを変更せずに、これらのサブリストをさらに変更できます。

以上がJava で ArrayList を複数のサブリストに効率的に分割する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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