Удалить ключ из хэш-карты

В настоящее время у меня проблема с удалением ключа в хэш-карте. Я создал хэш-карту внутри хэш-карты. Мне нужно удалить ключ по значению внутри хэш-карты в хэш-карте. Таким образом, хэш-карта выглядит так:

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. Прямо сейчас я использую список массивов, чтобы добавить ключи, которые необходимо удалить, а затем пройтись по массиву, чтобы удалить ключи из хэш-карты.

Пока это решение:

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
@ Эндрю, я не могу понять, как дважды зациклить while(it.hasNext()), чтобы получить хэш-карту people_attributes   -  person Jay Lee    schedule 07.05.2018
comment
что ты имел в виду под дважды? написать два последовательных оператора while?   -  person Andrew Tobilko    schedule 08.05.2018