Rumah >Java >javaTutorial >Bagaimana untuk Memisahkan ArrayList kepada Subsenarai yang Lebih Kecil di Jawa?

Bagaimana untuk Memisahkan ArrayList kepada Subsenarai yang Lebih Kecil di Jawa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-15 05:42:02459semak imbas

How to Split an ArrayList into Smaller Sublists in Java?

Memisahkan ArrayList kepada Subsenarai yang Lebih Kecil

Di Java, struktur data ArrayList menyediakan cara yang mudah untuk menyimpan koleksi objek dengan cekap. Kadangkala, ia menjadi perlu untuk membahagikan ArrayList kepada beberapa subsenarai yang lebih kecil dengan saiz yang ditentukan. Artikel ini meneroka cara untuk mencapai ini dengan berkesan.

Menggunakan subList() untuk Pandangan Tidak Boleh Berubah

Kaedah subList() membolehkan anda membuat paparan sebahagian daripada ArrayList . Subsenarai yang terhasil tidak boleh diubah, bermakna ia tidak boleh diubah suai.

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);

Selepas mencipta subsenarai, sebarang perubahan yang dibuat pada ArrayList asal akan ditunjukkan dalam subsenarai. Sebaliknya, pengubahsuaian kepada subsenarai tidak akan menjejaskan ArrayList asal.

Mencipta Subsenarai Boleh Ubah

Jika anda memerlukan subsenarai boleh ubah, cipta ArrayList baharu daripada paparan subList().

List<Integer> newHead = new ArrayList<>(head);

Fungsi Cincang untuk Pembahagian Yang Mudah

Untuk situasi di mana berbilang subsenarai diperlukan, pertimbangkan untuk mencipta fungsi utiliti seperti berikut:

static <T> List<List<T>> chopped(List<T> list, final int L) {
    List<List<T>> parts = new ArrayList<>();
    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;
}

Fungsi ini mengambil ArrayList dan panjang subsenarai yang diingini sebagai parameter dan mengembalikan senarai subsenarai.

Contoh Penggunaan

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

Kesimpulan

Dengan memanfaatkan kaedah subList() dan fungsi utiliti yang dibincangkan dalam artikel ini, anda boleh memisahkan ArrayList dengan berkesan kepada beberapa subsenarai yang lebih kecil, menyesuaikan dengan keperluan pengaturcaraan khusus anda.

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