import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class DeleteHashMap { public static void main(String[] args) { HashMap<String, Integer> map = new HashMap<String, Integer>(); map.put("a", 1); map.put("b", 0); map.put("c", 1); map.put("d", 0); map.put("e", 1); // 开始处理数据 for (Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator(); it.hasNext(); ) { Map.Entry<String, Integer> item = it.next(); String key = item.getKey(); // 这里是删除的条件 int val = item.getValue(); if (val == 0 || key.equals("a")) {//删除key为a 或 值为0的数据 it.remove(); // 删除 } } //看一下结果 System.out.println(map); } }
如果使用如下代码会报错:Exception in thread "main" java.util.ConcurrentModificationException
for (Map.Entry<String, Integer> item : map.entrySet()) { // todo 测试结果 String key = item.getKey(); int val = item.getValue(); if (val == 0 || key.equals("a")) { map.remove(key); } }