您的位置:首页 > 其它

把list<Map>根据日期重新生成一个list<Map>

2017-03-29 16:40 281 查看
import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class Demo2 {

public static void main(String[] args) {
List<Map<String, Object>> listTemp=data();

Map<String,List<Map<String, Object>>> datamap=new HashMap<String,List<Map<String, Object>>>();

List<List<Map<String, Object>>> rsult=new ArrayList<List<Map<String, Object>>>();

List<Map<String, Object>> listdate;

for (Map<String, Object> map : listTemp) {

String dates = (String)map.get("date");

boolean fvg = datamap.containsKey(dates);

if (!fvg) {//不包含
listdate=new ArrayList<Map<String, Object>>();

listdate.add(map);

datamap.put(dates, listdate);

rsult.add(listdate);
} else { //包含

listdate=datamap.get(dates);

listdate.add(map);
}

}

print(rsult);

}

public static void  print(List<List<Map<String, Object>>> rsult) {
for (List<Map<String, Object>> list : rsult) {
for (Map<String, Object> map : list) {
System.out.println(map);

}
System.out.println("============");
}

System.out.println("------------"+rsult.toString());
}

public static List<Map<String, Object>> data() {
List<Map<String, Object>> listTemp = new ArrayList<Map<String, Object>>();

Map<String, Object> mapTemp = new HashMap<String, Object>();
mapTemp.put("sum", 8000);
mapTemp.put("date", "2017-3-26");
listTemp.add(mapTemp);

Map<String, Object> mapTemp2 = new HashMap<String, Object>();
mapTemp2.put("sum", 2000);
mapTemp2.put("date", "2017-3-26");
listTemp.add(mapTemp2);

Map<String, Object> mapTemp3 = new HashMap<String, Object>();
mapTemp3.put("sum", 3000);
mapTemp3.put("date", "2017-3-27");
listTemp.add(mapTemp3);

Map<String, Object> mapTemp5 = new HashMap<String, Object>();
mapTemp5.put("sum", 3001);
mapTemp5.put("date", "2017-3-26");
listTemp.add(mapTemp5);

Map<String, Object> mapTemp6 = new HashMap<String, Object>();
mapTemp6.put("sum", 5001);
mapTemp6.put("date", "2017-3-28");
listTemp.add(mapTemp6);

Map<String, Object> mapTemp7 = new HashMap<String, Object>();
mapTemp7.put("sum", 5002);
mapTemp7.put("date", "2017-3-27");
listTemp.add(mapTemp7);

Map<String, Object> mapTemp8 = new HashMap<String, Object>();
mapTemp8.put("sum", 5030);
mapTemp8.put("date", "2017-3-27");
listTemp.add(mapTemp8);

Map<String, Object> mapTemp9 = new HashMap<String, Object>();
mapTemp9.put("sum", 5050);
mapTemp9.put("date", "2017-3-28");
listTemp.add(mapTemp9);

System.out.println("--------listTemp:-------" + listTemp);
System.out.println();
return listTemp;
}
}

结果为:

--------listTemp:-------[{date=2017-3-26, sum=8000}, {date=2017-3-26, sum=2000}, {date=2017-3-27, sum=3000}, {date=2017-3-26, sum=3001}, {date=2017-3-28, sum=5001}, {date=2017-3-27, sum=5002}, {date=2017-3-27, sum=5030}, {date=2017-3-28, sum=5050}]

{date=2017-3-26, sum=8000}

{date=2017-3-26, sum=2000}

{date=2017-3-26, sum=3001}

============

{date=2017-3-27, sum=3000}

{date=2017-3-27, sum=5002}

{date=2017-3-27, sum=5030}

============

{date=2017-3-28, sum=5001}

{date=2017-3-28, sum=5050}

============

------------[[{date=2017-3-26, sum=8000}, {date=2017-3-26, sum=2000}, {date=2017-3-26, sum=3001}], [{date=2017-3-27, sum=3000}, {date=2017-3-27, sum=5002}, {date=2017-3-27, sum=5030}], [{date=2017-3-28, sum=5001}, {date=2017-3-28, sum=5050}]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: