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


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值