map的循環刪除操作


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;
            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM