ホームページ >Java >&#&チュートリアル >Java で ArrayList を複数のサブリストに効率的に分割する方法
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 サイトの他の関連記事を参照してください。