Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengelakkan ConcurrentModificationException Apabila Mengalih Keluar Elemen daripada ArrayList?

Bagaimana untuk Mengelakkan ConcurrentModificationException Apabila Mengalih Keluar Elemen daripada ArrayList?

Barbara Streisand
Barbara Streisandasal
2024-10-30 20:34:30342semak imbas

How to Avoid ConcurrentModificationException When Removing Elements from an ArrayList?

Cara Mengatasi ConcurrentModificationException Apabila Melintasi dan Mengalih Keluar Elemen daripada ArrayList

Meletup pada ArrayList sambil mengalih keluar elemen secara serentak boleh mencetuskan infamous. util.ConcurrentModificationException. Untuk menangani isu ini, terdapat beberapa amalan terbaik untuk dipertimbangkan.

Salah satu pendekatan ialah membuat senarai berasingan elemen yang ingin anda alih keluar. Semasa lelaran gelung, tambahkan elemen ini pada senarai kedua dan setelah lelaran selesai, panggil kaedah originalList.removeAll(valuesToRemove).

Sebagai alternatif, anda boleh menggunakan kaedah remove() terus pada iterator. Ambil perhatian bahawa teknik ini memerlukan anda menjauhi gelung untuk dipertingkatkan. Contohnya, untuk menghapuskan rentetan yang melebihi panjang 5 daripada senarai:

List<String> list = new ArrayList<String>();

for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
    String value = iterator.next();
    if (value.length() > 5) {
        iterator.remove();
    }
}

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan ConcurrentModificationException Apabila Mengalih Keluar Elemen daripada ArrayList?. 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