「java入門」同じマップをマージするサンプルコード

2017年9月19日

Javaコード

/**

* 同じマップをマージする
* @param list
* @return
*/
public static List<Map<String,String>> mergeList(List<Map<String,String>> list){

List<Map<String,String>> retLst = new ArrayList<Map<String,String>>();
for(int i=0;i<list.size();i++){
Map<String,String> map = list.get(i);
String name = map.get(“name");
String city = map.get(“city");
String count = map.get(“count");
Map<String,String> newMap=isExistSame(i,name,city,count,list);
if(null==newMap){
retLst.add(map);
}
else{
list.remove(map.get(i));
retLst.add(newMap);
}
}
return retLst;
}
private static Map<String,String> isExistSame(int i,String name,String city,String count,List<Map<String,String>> list){
Map<String,String> newMap = null;
for(int j=i+1;j<list.size();j++){
Map<String,String> innerMap = list.get(j);
String nameAA = innerMap.get(“name");
String cityAA = innerMap.get(“city");
String countAA = innerMap.get(“count");
if(name.equals(nameAA)&&city.equals(cityAA)){
newMap = new HashMap<String,String>();
newMap.put(“count", “"+(Integer.parseInt(count)+Integer.parseInt(count1)));

Iterator<String> keyIterator = innerMap.keySet().iterator();
while(keyIterator.hasNext()){
String key = keyIterator.next();
if(!key.equals(“count")){
newMap.put(key, innerMap.get(key));
}
}
list.remove(j);
}
}
return newMap;
}
}

 

Java

Posted by arkgame