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