Java List<Map>类型的数据按date分组,但是之前的顺序不要变
时间: 2024-11-09 08:25:20 浏览: 8
Java实现对两个List快速去重并排序操作示例
5星 · 资源好评率100%
在Java中,如果你有一个`List<Map<String, Object>>`类型的集合,其中每个Map代表一条数据,并且想要按照日期字段进行分组,同时保持原有的插入顺序,你可以使用`java.util.stream.Collectors`类配合`Collectors.groupingBy()`方法来实现这个功能。这里假设你的日期字段名为"date"。
首先,你需要创建一个新的Map来作为结果容器,键是日期,值是一个列表用于存储该日期的所有Map:
```java
Map<Date, List<Map<String, Object>>> groupedData = list.stream()
.collect(Collectors.groupingBy(map -> (Date) map.get("date"), // 获取日期并转换为Date对象
Collectors.toList())); // 将每个日期对应的Map收集到一个列表中
```
这将保留原始的插入顺序,因为`toList()`收集器会维护元素的迭代顺序。如果日期类型不是`Date`,记得适当地进行类型转换。
阅读全文