stream流根据月进行分组
时间: 2023-10-13 20:15:31 浏览: 35
可以使用Java 8的stream API中的groupingBy方法来实现根据月份分组。首先,我们需要将日期转换为月份,然后使用groupingBy方法将月份作为键进行分组。以下是示例代码:
```
import java.time.LocalDate;
import java.time.Month;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StreamGroupByMonthExample {
public static void main(String[] args) {
Stream<LocalDate> dates = Stream.of(
LocalDate.of(2021, Month.JANUARY, 1),
LocalDate.of(2021, Month.JANUARY, 15),
LocalDate.of(2021, Month.FEBRUARY, 1),
LocalDate.of(2021, Month.FEBRUARY, 15),
LocalDate.of(2021, Month.MARCH, 1),
LocalDate.of(2021, Month.MARCH, 15)
);
Map<Month, Long> result = dates.collect(Collectors.groupingBy(
date -> date.getMonth(),
Collectors.counting()
));
System.out.println(result);
}
}
```
输出结果为:
```
{JANUARY=2, FEBRUARY=2, MARCH=2}
```
可以看到,结果是一个Map对象,其中键是月份,值是该月份出现的次数。在本例中,1月出现2次,2月出现2次,3月出现2次。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)