Saat ini saya memiliki masalah dengan menghapus kunci di peta hash. Saya membuat peta hash di dalam peta hash. Saya perlu menghapus kunci dengan nilai di dalam peta hash di dalam peta hash. Jadi peta hashnya terlihat seperti ini:
HashMap<String, String> people_attributes = new HashMap<String, String>();
Map<String, HashMap<String, String>> people = new HashMap<String, HashMap<String, String>>();
Jika saya mencoba menghapus kunci, ganti remove_name.add(p_name)
dengan people.remove(p_name)
Saya mendapatkan java.util.ConcurrentModificationException
. Saat ini, saya menggunakan daftar array untuk menambahkan kunci yang perlu dihapus, lalu menelusuri daftar array untuk menghapus kunci dari peta hash.
Sejauh ini solusinya adalah:
for(String p_name : people.keySet()) { // search through people with attribute
for(String p_attributes : people.get(p_name).keySet()) { // search through attributes map
if(p_attributes.equals(g_att)) { // when current attributes equal to guess attribute
p_value = people.get(p_name).get(p_attributes);
if(!p_value.equals(g_value)) { // if current value doesn't equal to guess value
remove_name.add(p_name);
}
}
}
}
for(String r_name : remove_name) {
people.remove(r_name);
}
Sunting:
Masalah: Saya tahu saya bisa menggunakan iterator, seperti semua pertanyaan lain yang diajukan di stackoverflow, tapi saya tidak tahu cara mengulang dua kali untuk masuk ke peta hash people_attributes.
while(it.hasNext())
dua kali untuk mendapatkan peta hash people_attributes - person Jay Lee   schedule 07.05.2018while
berturut-turut? - person Andrew Tobilko   schedule 08.05.2018