1.错误示例
Map<String,InterfaceOutParam> outCodes1 = outParamList.stream().collect(Collectors.toMap(InterfaceOutParam::getOutparamCode,a->a)); Map<String,InterfaceOutParam> outCodes2 = outParamList2.stream().collect(Collectors.toMap(InterfaceOutParam::getOutparamCode,a->a)); //统计修改的参数 for (String key : outCodes1.keySet()) { if(outCodes2.containsKey(key)){ updateOutParamList.add(outCodes1.get(key)); outCodes1.remove(key); continue; } }
抛出异常:
2.使用 Iterator 遍历删除
for (Iterator<Map.Entry<String, InterfaceOutParam>> it = outCodes1.entrySet().iterator(); it.hasNext();){ Map.Entry<String, InterfaceOutParam> item = it.next(); if(outCodes2.containsKey(item.getKey())){ updateOutParamList.add(outCodes1.get(item.getKey())); it.remove(); continue; } }