从hashmap中删除密钥

时间:2018-05-07 10:48:40

标签: java hashmap

我目前在删除hashmap中的密钥时遇到问题。我在hashmap中创建了一个hashmap。我需要通过hashmap中hashmap内的值删除一个键。所以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以从hashmap中删除键。

到目前为止,这是解决方案:

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 hashmap。

0 个答案:

没有答案