Memisahkan ArrayList kepada Pelbagai ArrayLists yang Lebih Kecil dalam Java
Membahagikan tatasusunan panjang tertentu kepada tatasusunan yang lebih kecil dengan saiz yang telah ditetapkan adalah perkara biasa tugas dalam pengaturcaraan. Apabila berurusan dengan Java ArrayLists, kaedah subList(int fromIndex, int toIndex) terbukti berguna.
Kaedah subList() mencipta paparan sebahagian daripada senarai asal, bermula pada fromIndex yang ditentukan (inklusif) dan berakhir di toIndex (eksklusif). Paparan ini disokong oleh senarai asal.
Untuk menggambarkan penggunaannya, pertimbangkan ArrayList integer:
List<Integer> numbers = new ArrayList<>( Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7) );
Menggunakan subList(), kita boleh mencipta paparan yang lebih kecil:
List<Integer> head = numbers.subList(0, 4); System.out.println(head); // Prints: [5, 3, 1, 2]
Untuk mengasingkan senarai kepada subsenarai bukan paparan, kami boleh membuat senarai baharu berdasarkan paparan:
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)))); }
Ini menghasilkan berbilang ArrayList yang lebih kecil. Walau bagaimanapun, pengubahsuaian yang dibuat kepada mana-mana subsenarai akan ditunjukkan dalam senarai asal melainkan kami mencipta versi yang tidak boleh diubah suai.
Sebagai contoh:
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)
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Java ArrayList kepada Berbilang ArrayList yang Lebih Kecil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!