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!