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!