Map 里面 嵌套list

@Override
public Map queryFootprintOfProduct(Map map) throws Exception {
    //查出日期降序排序的记录
    List<FootprintOfProBrowse> list = holderProductDao.queryFootprintOfProduct(map);
    if(list==null){
        return null;
    }
    //按日期拆分,每日一个list
    Map<String,List<FootprintOfProBrowse>> mapTemp = new LinkedHashMap<>();
    Date temp= DateTime.getDefault();

    for (int i=0;list.size()>i;i++) {
        if(list.get(i).getDiffDay().getTime()!=temp.getTime()){//如果时间不一样,则新建一个list,后面的继续添加进新的list
            temp=list.get(i).getDiffDay();
            mapTemp.put(DateTime.dateToStr(temp,"yyyy-MM-dd"),new ArrayList<FootprintOfProBrowse>());
        }
        mapTemp.get(DateTime.dateToStr(temp,"yyyy-MM-dd")).add(list.get(i));
    }
    return mapTemp;
}

改进版本

/**
 * @description:通过useId查出当前的用户的访问商品足迹
 * @param
 * @return
 */
@Override
public Map queryFootprintOfProduct(Map map) throws Exception {
    //查出日期降序排序的记录
    List<FootprintOfProBrowse> list = holderProductDao.queryFootprintOfProduct(map);
    if(list==null){
        return null;
    }
    //按日期拆分,每日一个list
    Map<String,List<FootprintOfProBrowse>> mapTemp = new LinkedHashMap<>();
    List<FootprintOfProBrowse> newList;
    String dateStr = "";
    for (FootprintOfProBrowse footprintOfProBrowse : list) {
	    dateStr = footprintOfProBrowse.getDiffDay();
        if(mapTemp.containsKey(dateStr)){
        	mapTemp.get(dateStr).add(footprintOfProBrowse);
        }else{
        	 newList = new ArrayList<FootprintOfProBrowse>();
        	 newList.add(footprintOfProBrowse);
        	 mapTemp.put(dateStr, newList);
        }
    }
    return mapTemp;
}

list里面嵌套Bean,Bean里面嵌套list

public List queryFootprintOfProduct(Map map){
       //查出日期降序排序的记录
       List<FootprintOfProBrowse> list = holderProductDao.queryFootprintOfProduct(map);
       Collections.reverse(list);
       if(list==null){
           return null;
       }
       //按日期拆分,每日一个list
       ArrayList<FootprintEveryDay> fpList = new ArrayList<>();//fpList:[{date:yyyy-MM-dd,list:[{足迹对象1},{足迹对象2}...]},...]
       ArrayList<FootprintOfProBrowse> fpProBrowses = null;
       for (FootprintOfProBrowse fpb:list) {
           String modifyDate = fpb.getModifyDate();
           if(fpList.size()!=0&&modifyDate.equals(fpList.get(fpList.size()-1).getDate())){//不为空,与最后一个插入对象的日期对比
               fpProBrowses.add(fpb);
           }else{
               fpProBrowses = new ArrayList<>();
               FootprintEveryDay fpDay = new FootprintEveryDay();//新建一个当天对象
               fpDay.setDate(fpb.getModifyDate());
               fpProBrowses.add(fpb);
               fpDay.setList(fpProBrowses);
               fpList.add(fpDay); //每日足迹对象放进总足迹list
           }
       }
       return fpList;
   }

FootprintEveryDay 对象

@Data
public class FootprintEveryDay implements Serializable {
  private static final long serialVersionUID = -4215763769986853559L;
  private String date;
  List<FootprintOfProBrowse> list;

}

FootprintOfProBrowse 对象

@Data
public class FootprintOfProBrowse implements Serializable {
  private static final long serialVersionUID = 7835375992636204034L;
  private String advertUrl;
  private String name;
  private String summary;
  private Double suggestPrice;
  private String angleImages;
  private String videoUrl;
  private Long hpId;
  private Long productId;
  private Long storeId;
  private String modifyTime;
  private String modifyDate;

}

打印结果

[
      {
          "date": "2019-06-14 00:00:00",
          "list": [
              {
                  "advertUrl": "http://web.fsyizhuang.com/upload/image/20181205/2i1b1544000398972.png",
                  "name": "65窗纱一体11",
                  "summary": "金刚纱网一体窗适合装配在比较新颖高端的门窗上,既能起到防虫、防蚊的效果还能起到防盗的作用,而且不影响美观。",
                  "suggestPrice": 888,
                  "angleImages": "Nsl8uzbk",
                  "videoUrl": "http://web.fsyizhuang.com/upload/image/20190412/pqzr1555061194705.mp4",
                  "hpId": 551,
                  "productId": 1,
                  "storeId": 600000004,
                  "modifyTime": "2019-06-14 15:26:27",
                  "modifyDate": "2019-06-14 00:00:00"
              },
              {
                  "advertUrl": "http://web.fsyizhuang.com/upload/image/20181206/wkr01544041508804.png",
                  "name": "118窗纱一体",
                  "summary": "金刚纱网一体窗适合装配在比较新颖高端的门窗上,既能起到防虫、防蚊的效果还能起到防盗的作用,而且不影响美观。",
                  "suggestPrice": 1188,
                  "angleImages": "Nsl8uzbk",
                  "videoUrl": "http://web.fsyizhuang.com/upload/image/20190412/pqzr1555061194705.mp4",
                  "hpId": 536,
                  "productId": 8,
                  "storeId": 600000004,
                  "modifyTime": "2019-06-14 16:13:13",
                  "modifyDate": "2019-06-14 00:00:00"
              }
            
          ]
      },
      {
          "date": "2019-06-15 00:00:00",
          "list": [
              {
                  "advertUrl": "http://web.fsyizhuang.com/upload/image/20181206/4jyv1544037094102.png",
                  "name": "50型材",
                  "summary": "产品名称:普通铝合金平开窗 产品型号:50型材 开启方式:外平开、内平开、固窗 材料类型:铝合金 表面工艺:喷涂、热转印、瓷泳(部分存在色差) 可选颜色::白色 灰色 咖啡色 型材厚度:1.4mm 玻",
                  "suggestPrice": 298,
                  "angleImages": "Nsl8uzbk",
                  "videoUrl": "http://web.fsyizhuang.com/upload/image/20190412/pqzr1555061194705.mp4",
                  "hpId": 701,
                  "productId": 3,
                  "storeId": 600000004,
                  "modifyTime": "2019-06-15 11:11:03",
                  "modifyDate": "2019-06-15 00:00:00"
              }
         
          ]
      }
  ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值