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 サイトの他の関連記事を参照してください。