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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 04:33:02383ブラウズ

How to Split a Java ArrayList into Multiple Smaller ArrayLists?

Java で ArrayList を複数の小さな ArrayList に分割する

特定の長さの配列を、あらかじめ決められたサイズの小さな配列に分割するのが一般的です。プログラミングにおけるタスク。 Java ArrayList を扱う場合、subList(int fromIndex, int toIndex) メソッドが便利です。

subList() メソッドは、指定された fromIndex (両端を含む) から始まり、元のリストの一部のビューを作成します。 toIndex (排他的) にあります。このビューは元のリストに基づいています。

その使用法を説明するために、整数の ArrayList を考えてみましょう:

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

subList() を使用すると、より小さいビューを作成できます:

List<Integer> head = numbers.subList(0, 4);
System.out.println(head); // Prints: [5, 3, 1, 2]

リストをビュー以外のサブリストに分割するには、以下に基づいて新しいリストを作成できます。 views:

List<List<Integer>> parts = new ArrayList<>();
final int L = 3;
final int N = numbers.size();

for (int i = 0; i < N; i += L) {
    parts.add(new ArrayList<>(list.subList(i, Math.min(N, i + L))));
}

これにより、複数のより小さい ArrayList が生成されます。ただし、サブリストに加えられた変更は、変更不可能なバージョンを作成しない限り、元のリストに反映されます。

例:

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]]
parts.get(0).add(-1);
System.out.println(parts); // Prints: [[5, 3, 1, -1], [2, 9, 5], [0, 7]]
System.out.println(numbers); // Prints: [5, 3, 1, 2, 9, 5, 0, 7] (unchanged)

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

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