Rumah  >  Artikel  >  Java  >  Bagaimana untuk membahagikan ArrayList kepada beberapa ArrayList yang lebih kecil di Jawa?

Bagaimana untuk membahagikan ArrayList kepada beberapa ArrayList yang lebih kecil di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-11-25 03:22:11228semak imbas

How to split an ArrayList into multiple smaller ArrayLists in Java?

Memisahkan ArrayList kepada Berbilang ArrayLists yang Lebih Kecil dalam Java

Di Java, memisahkan ArrayList kepada berbilang ArrayList yang lebih kecil daripada saiz yang ditentukan memerlukan penyelesaian yang membolehkan pembahagian yang cekap dan berpotensi mencipta bukan paparan subsenarai.

Menggunakan subList()

Satu pendekatan ialah menggunakan kaedah subList(int fromIndex, int toIndex) untuk mendapatkan paparan sebahagian daripada senarai asal . Kaedah ini tidak mencipta senarai baharu tetapi sebaliknya memberikan rujukan kepada segmen dalam ArrayList sedia ada.

Contoh:

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]"

Mencipta Bukan- Lihat Subsenarai

Walau bagaimanapun, jika anda memerlukan senarai yang dicincang menjadi bebas dan bukan pandangan daripada senarai asal, anda boleh membuat ArrayList baharu daripada subList.

Contoh:

// 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]]"
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]" (unmodified!)

Atas ialah kandungan terperinci Bagaimana untuk membahagikan ArrayList kepada beberapa ArrayList yang lebih kecil di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn