Rumah >Java >javaTutorial >Bagaimana untuk Membuang Elemen dengan Selamat dari ArrayList Semasa Lelaran Serentak di Java?
Mengendalikan ConcurrentModificationException Semasa Lelaran dan Pembuangan Serentak dalam ArrayList
Di Java, mengulang koleksi sambil mengubah suai secara serentak boleh menghasilkan java. util.ConcurrentModificationException. Pengecualian ini timbul apabila struktur koleksi diubah semasa lelaran disebabkan operasi menambah atau mengalih keluar.
Untuk memintas isu ini apabila bekerja dengan ArrayList, pertimbangkan amalan terbaik berikut:
Buat Senarai Elemen untuk Dialih Keluar:
Kekalkan senarai berasingan untuk menjejaki elemen yang perlu dialih keluar. Dalam gelung, cuma tambah elemen pada senarai ini dan bukannya mengalih keluarnya terus daripada senarai asal. Setelah gelung selesai, gunakan kaedah removeAll() ArrayList untuk mengalih keluar semua elemen daripada senarai.
Gunakan Kaedah Alih Keluar Iterator:
Gunakan kaedah remove() tersedia pada iterator itu sendiri. Ambil perhatian bahawa ini memerlukan meninggalkan sintaks gelung Java 8 yang dipertingkatkan untuk lelaran melalui senarai.
Sebagai contoh, jika anda bertujuan untuk mengalih keluar rentetan dengan panjang lebih daripada lima daripada ArrayList:
<code class="java">List<String> list = new ArrayList<String>(); ... for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Membuang Elemen dengan Selamat dari ArrayList Semasa Lelaran Serentak di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!