Rumah > Java > javaTutorial > Bagaimana untuk Memisahkan Java ArrayList kepada Berbilang ArrayList yang Lebih Kecil?

Bagaimana untuk Memisahkan Java ArrayList kepada Berbilang ArrayList yang Lebih Kecil?

Mary-Kate Olsen
Lepaskan: 2024-11-19 04:33:02
asal
428 orang telah melayarinya

How to Split a Java ArrayList into Multiple Smaller ArrayLists?

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)
);
Salin selepas log masuk

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]
Salin selepas log masuk

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))));
}
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan