如需转载分享,请标明出处,且不用于盈利为目的,谢谢合作!
以map中相同的一个key合并List<Map<String,Object>>数据
package com.yss;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @PACKAGE_NAME: com.yss
* @PROJECT_NAME: ams-project
* @DATE: 2020-03-19 14:46
* @Author: sunhao
* @Description:
*/
public class AA {
public static void main(String[] args){
List<Map<String,Object>> dataList = new ArrayList<>();
Map<String,Object> m1 = new HashMap<>();
m1.put("fundcode","1010");
m1.put("fundname","shang");
m1.put("status1",1);
dataList.add(m1);
Map<String,Object> m2 = new HashMap<>();
m2.put("fundcode","1010");
m2.put("fundname","shang");
m2.put("status2",1);
dataList.add(m2);
Map<String,Object> m3 = new HashMap<>();
m3.put("fundcode","1020");
m3.put("fundname","hai");
m3.put("status3",0);
dataList.add(m3);
List<Map<String,Object>> countList = new ArrayList<>();
for(int l=0;l<dataList.size();l++){
String fundCode = String.valueOf(dataList.get(l).get("fundcode").toString());
int flag = 0; //0为新增数据,1为countList
for(int j=0;j<countList.size();j++){
String newFundcode = String.valueOf(dataList.get(j).get("fundcode").toString());
if(fundCode.equals(newFundcode)){
for(Map.Entry<String,Object> entry : dataList.get(l).entrySet()){
countList.get(j).put(entry.getKey(),entry.getValue());
}
flag = 1;
continue;
}
}
if(flag==0){
countList.add(dataList.get(l));
}
}
System.out.println(countList);
}
}
输出:
[{status1=1, fundcode=1010, fundname=shang, status2=1}, {fundcode=1020, fundname=hai, status3=0}]