ลบคีย์ออกจาก hashmap [ซ้ำกัน]

ขณะนี้ฉันมีปัญหาในการลบคีย์ในแฮชแมป ฉันสร้างแฮชแมปภายในแฮชแมป ฉันต้องลบคีย์ด้วยค่าภายในแฮชแมปภายในแฮชแมป ดังนั้นแฮชแมปจึงมีลักษณะดังนี้:

HashMap<String, String> people_attributes = new HashMap<String, String>();
Map<String, HashMap<String, String>> people = new HashMap<String, HashMap<String, String>>();

หากฉันพยายามลบคีย์ ให้แทนที่ remove_name.add(p_name) ด้วย people.remove(p_name) ฉันจะได้ java.util.ConcurrentModificationException ตอนนี้ฉันใช้ arraylist เพื่อเพิ่มคีย์ที่ต้องลบออก จากนั้นวนซ้ำ arraylist เพื่อลบคีย์ออกจากแฮชแมป

จนถึงตอนนี้นี่คือวิธีแก้ปัญหา:

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);
}

แก้ไข:

ปัญหา: ฉันรู้ว่าฉันสามารถใช้ตัววนซ้ำได้ เช่นเดียวกับคำถามอื่นๆ ที่ถามใน stackoverflow แต่ฉันไม่รู้ว่าจะวนซ้ำสองครั้งเพื่อเข้าสู่แฮชแมป people_attributes ได้อย่างไร


person Jay Lee    schedule 07.05.2018    source แหล่งที่มา
comment
ขออภัย ฉันปิดคำถามของคุณแล้วเนื่องจากเรามีคำถามที่เหมือนกันอยู่แล้วที่นี่ หากคุณหมายถึงบางสิ่งที่เฉพาะเจาะจงมากขึ้น โปรดแก้ไขโพสต์เพื่อชี้แจง แล้วเราจะเปิดอีกครั้ง   -  person Andrew Tobilko    schedule 07.05.2018
comment
@Andrew ฉันไม่สามารถเข้าใจวิธีการวนซ้ำ while(it.hasNext()) สองครั้งเพื่อรับ people_attributes hashmap   -  person Jay Lee    schedule 07.05.2018
comment
คุณหมายถึงอะไรสองครั้ง? กำลังเขียนคำสั่ง while สองคำสั่งติดต่อกัน?   -  person Andrew Tobilko    schedule 08.05.2018