java list根据日期分组
时间: 2023-10-07 09:07:56 浏览: 175
可以通过Java 8的Stream API和Collectors.groupingBy()方法来根据日期对List进行分组。以下是示例代码:
假设有一个包含日期的List对象:
```java
List<Date> dates = Arrays.asList(
new Date(2022, 1, 1),
new Date(2022, 1, 2),
new Date(2022, 2, 1),
new Date(2022, 2, 2),
new Date(2022, 3, 1),
new Date(2022, 3, 2)
);
```
可以通过以下代码将List对象按照月份进行分组:
```java
Map<Integer, List<Date>> groupedDates = dates.stream()
.collect(Collectors.groupingBy(date -> date.getMonth()));
```
这将返回一个Map对象,其中键为月份(0表示1月,1表示2月,以此类推),值为该月份下的所有日期。可以通过迭代Map对象来访问每个月份下的日期,例如:
```java
for (Map.Entry<Integer, List<Date>> entry : groupedDates.entrySet()) {
int month = entry.getKey();
List<Date> datesInMonth = entry.getValue();
System.out.println("Month " + month + ": " + datesInMonth);
}
```
这将打印出每个月份下的日期列表。
阅读全文