Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengalih Keluar Elemen dengan Selamat daripada Peta Semasa Mengulang?

Bagaimana untuk Mengalih Keluar Elemen dengan Selamat daripada Peta Semasa Mengulang?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-17 11:21:02570semak imbas

How to Safely Remove Elements from a Map While Iterating?

Mengulang dan Mengalih Keluar Elemen daripada Peta: Penyelesaian yang Diperbaiki

Apabila cuba mengulangi kekunci peta dan mengalih keluar elemen secara bersyarat, anda mungkin menghadapi ConcurrentModificationException. Untuk menangani perkara ini, adalah disyorkan untuk membuat koleksi baharu daripada set kunci peta dan mengulanginya. Walau bagaimanapun, pendekatan ini boleh menjadi tidak cekap dan kompleks.

Penyelesaian yang lebih berkesan ialah menggunakan kaedah remove() antara muka Iterator. Ini membolehkan anda mengubah suai peta secara terus sambil mengulanginya. Berikut ialah contoh:

Map<String, String> map = new HashMap<>();
map.put("test", "test123");
map.put("test2", "test456");

for (Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext(); ) {
    Map.Entry<String, String> entry = it.next();
    if (entry.getKey().equals("test")) {
        it.remove();
    }
}

Sampel kod ini menggambarkan cara menggunakan Iterator dalam gelung for untuk mengalih keluar masukan daripada peta. Dengan memanfaatkan kaedah remove(), anda boleh mengemas kini kandungan peta dengan cekap sambil mengulangi entrinya. Pendekatan ini menghapuskan keperluan untuk blok penyegerakan tambahan, menjadikannya penyelesaian yang lebih bersih dan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mengalih Keluar Elemen dengan Selamat daripada Peta Semasa Mengulang?. 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