背景
项目中需要移除map集合中对应的键值对,用以控制数据的变化。
实现
- 这里我写了一个测试方法,通过打印日志可以直观的看到map中数据的变化,从而证明这样的实现方式的正确性。如下:
private void removeMapValueTest() {
Map<String, Object> map = new HashMap<>();// 创建map
// 模拟添加数据
map.put("a1", "1");
map.put("a2", "2");
map.put("b1", "11");
map.put("b2", "22");
map.put("c1", "111");
map.put("c2", "222");
LogUtil.e("mapOriginal",map.toString());// 打印原始map
Iterator<String> iterator = map.keySet().iterator();// map中key(键)的迭代器对象
while (iterator.hasNext()){// 循环取键值进行判断
String key = iterator.next();// 键
if(key.startsWith("a")){
iterator.remove();// 移除map中以a字符开头的键对应的键值对
}
}
LogUtil.e("mapRemove",map.toString());// 打印移除键值对后的map
}
- 下面是日志信息的打印,如下:
这里大家可以看到,map中的数据发生了变化,以a字符开头的键所对应的键值对确实从map中移除了,故该方法是正确的。
========================================================================