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,内存地址始终没变,只是内容改变。。。
作 者:凑数的园丁
出 处:https://www.cnblogs.com/lq-404/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。