一个List<Map<String,Object>>中的每个Map存放着一个日期和一些商品信息,如何用日期对这个List中的Map进行分组
时间: 2023-11-11 19:25:42 浏览: 70
您好,根据您的要求,我们可以利用Java 8的Stream API进行分组操作。具体操作如下:
假设我们有如下List<Map<String, Object>>数据:
List<Map<String, Object>> dataList = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("date", LocalDate.of(2022, 3, 1));
map1.put("name", "商品1");
map1.put("price", 100);
dataList.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("date", LocalDate.of(2022, 3, 1));
map2.put("name", "商品2");
map2.put("price", 200);
dataList.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("date", LocalDate.of(2022, 3, 2));
map3.put("name", "商品3");
map3.put("price", 150);
dataList.add(map3);
我们需要按照日期对数据进行分组,那么可以按照如下方式进行操作:
// 根据日期对数据进行分组
Map<LocalDate, List<Map<String, Object>>> groupedData = dataList.stream()
.collect(Collectors.groupingBy(m -> (LocalDate) m.get("date")));
这样我们就按照日期对数据进行了分组,得到了一个Map,其中Map的key为日期,value为对应日期的List<Map<String, Object>>数据。我们可以利用这个结果进行后续的处理。
阅读全文