返回顶部

Map集合的创建时机

火眼金睛😄

前端需要这样格式的数据

  this.leftobj = [
      { date: 1, number: 120, reservations: 1 },
      { date: 3, number: 120, reservations: 1 },
      { date: 4, number: 120, reservations: 120 },
      { date: 6, number: 120, reservations: 1 },
      { date: 8, number: 120, reservations: 1 }
  ];

由于不想为此再去写一个实体类,所以用Map代替

  • Controller
    List<Map> list = checkItemService.getOrderByDate(date);

  • Service

  List<Map> mapList = new ArrayList<>();
  //Map<String,Object> map1 = new HashMap<>();
  for (OrderSetting orderSetting : list){
      //Map集合写在这
      Map<String,Object> map1 = new HashMap<>();
      //格式:{ date: 1, number: 120, reservations: 1 }
      map1.put("date",orderSetting.getOrderDate().getDate());
      map1.put("number",orderSetting.getNumber());
      map1.put("reservations",orderSetting.getReservations());
      mapList.add(map1);
    }
    return mapList;

上面的写法是正确的可以得到多个不同Map构成的集合,下面这个就坑爹了

  • Service
  List<Map> mapList = new ArrayList<>();
  //还是把Map写在这
  Map<String,Object> map1 = new HashMap<>();
  for (OrderSetting orderSetting : list){
      map1.put("date",orderSetting.getOrderDate().getDate());
      map1.put("number",orderSetting.getNumber());
      map1.put("reservations",orderSetting.getReservations());
      mapList.add(map1);
    }
    return mapList;

上面这种写法List集合中就只有一个Map

写在for循环里,每一次都会创建新的Map(对应的内存地址不同),而在循环外面就只有一个Map,内存地址始终没变,只是内容改变。。。

posted @ 2021-07-30 13:57  凑数的园丁  阅读(60)  评论(0编辑  收藏  举报