Rumah  >  Artikel  >  Java  >  Bagaimana untuk Memisahkan ArrayList dengan Cekap kepada Berbilang Subsenarai di Jawa?

Bagaimana untuk Memisahkan ArrayList dengan Cekap kepada Berbilang Subsenarai di Jawa?

DDD
DDDasal
2024-11-15 08:34:02595semak imbas

How to Efficiently Split an ArrayList into Multiple Sublists in Java?

Memisahkan ArrayList kepada Berbilang Subsenarai

Di Java, anda boleh membahagikan ArrayList dengan cekap kepada subsenarai yang lebih kecil dan bersaiz sama. Ini berguna dalam senario di mana anda perlu memproses atau mengurus data dalam ketulan bersaiz gigitan.

Menggunakan subList() untuk Mencipta Views

Kaedah subList() bagi kelas ArrayList membolehkan anda mendapatkan paparan sebahagian daripada senarai asal dalam julat yang ditentukan. Panggilan ke subList() tidak membuat senarai baharu tetapi mengembalikan paparan ke dalam senarai sedia ada. Sebarang perubahan yang dibuat pada subsenarai ditunjukkan dalam senarai asal dan begitu juga sebaliknya.

List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7));

List<Integer> head = numbers.subList(0, 4); // View from index 0 to index 3 (exclusive)
List<Integer> tail = numbers.subList(4, 8); // View from index 4 to index 7 (exclusive)

Mencipta Subsenarai Bukan Lihat

Jika anda memerlukan subsenarai itu bebas daripada senarai asal, anda boleh mencipta objek ArrayList baharu secara eksplisit daripada paparan subsenarai.

List<List<Integer>> chopped = new ArrayList<>();
for (int i = 0; i < numbers.size(); i += L) {
    List<Integer> sublist = new ArrayList<>(
        numbers.subList(i, Math.min(numbers.size(), i + L))
    );
    chopped.add(sublist);
}

Pendekatan ini mencipta salinan dalam subsenarai, memastikan perubahan pada subsenarai yang dicincang tidak menjejaskan senarai asal.

Contoh Penggunaan

Pertimbangkan Senarai integer yang dipanggil nombor yang mengandungi [5, 3, 1, 2, 9, 5, 0, 7]. Anda boleh membahagikan senarai ini kepada tiga subsenarai saiz 3 menggunakan kod berikut:

List<List<Integer>> choppedLists = chopped(numbers, 3);

Pembolehubah choppedLists kini akan mengandungi tiga senarai: [[5, 3, 1], [2, 9, 5] , [0, 7]]. Anda boleh mengubah suai lagi subsenarai ini tanpa mengubah senarai nombor asal.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan ArrayList dengan Cekap kepada Berbilang Subsenarai 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