java怎么对会议集合以日期进行分组
时间: 2024-05-03 18:22:14 浏览: 71
假设有一个会议类Meeting,其中有一个日期属性date,可以使用Java 8中的流和分组操作来将会议对象集合按照日期分组。
首先,将会议集合转换为流:
```
List<Meeting> meetings = ... // 会议集合
Map<LocalDate, List<Meeting>> meetingsByDate = meetings.stream()
.collect(Collectors.groupingBy(Meeting::getDate));
```
上面的代码将会议对象按照getDate方法返回的日期属性进行分组,并返回一个Map对象,其中键是日期,值是该日期下的会议对象列表。
如果想要按照月份进行分组,可以使用Java 8中的DateTimeFormatter类和LocalDate类的with方法来提取月份信息:
```
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
Map<String, List<Meeting>> meetingsByMonth = meetings.stream()
.collect(Collectors.groupingBy(m -> m.getDate().withDayOfMonth(1).format(formatter)));
```
上面的代码将会议对象按照月份进行分组,并返回一个Map对象,其中键是月份,值是该月份下的会议对象列表。
阅读全文