官方并没有实现map的removeAll方法,我的实现:
/**
* 两个map相减,返回减掉的属性(即:相同的属性map集合)
* @param map1
* @param map2
* @return
*/
public static Map<String,Object> mapRemoveAll(Map<String, String> map1, Map<String, String> map2) {
Set<String> keys = map2.keySet();
Set<Map.Entry<String, String>> entrySet = map1.entrySet();
Map<String,Object> sameElements = new HashMap<>();
for (String key : keys) {
Iterator<Map.Entry<String, String>> car = entrySet.iterator();
while (car.hasNext()) {
Map.Entry<String, String> obj = car.next();
if (StringUtils.equals(key, obj.getKey())) {
sameElements .put(obj.getKey(), obj.getValue());
car.remove();
}
}
}
return sameElements ;
}
欢迎指正!