map.putAll():把map1的值整体传递给map2,并且修改map2的值不能影响map1

List> mapList2= new ArrayList>();
List> forList = new ArrayList>();
List> mapList1= formulaList;
		
if(mapList1!= null) {
	for (Map m : mapList1) {
		Map condMap = new HashMap();
		if (((String)m.get("NAME")).indexOf("!")>-1 && 
                    StringUtils.isNotBlank((String)map.get("NO"))) {
			condMap.putAll(m);
			String NO = "!"+(String) m.get("NO");
			condMap.put("NO", NO);
			mapList2.add(condMap);
		}
	}
}

for(Map f :mapList1) {
    if(((String)f.get("NO")).indexOf("!") == -1) {//等于-1说明不包含!
    	forList.add(f);
    }
}
    	
for(Map n :mapList2) {
   forList.add(n);
}
		
System.out.println("更新后的forList:"+forList);

 

你可能感兴趣的:(Java)