stream流把一年的数据按照月份分组
时间: 2023-07-08 15:29:59 浏览: 117
假设你有一个包含日期和数值的数据列表,你可以使用Java 8的Stream API将数据按照月份分组,以下是示例代码:
```java
import java.time.LocalDate;
import java.time.Month;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Data> dataList = Arrays.asList(
new Data(LocalDate.of(2021, Month.JANUARY, 1), 100),
new Data(LocalDate.of(2021, Month.FEBRUARY, 1), 200),
new Data(LocalDate.of(2021, Month.MARCH, 1), 300),
new Data(LocalDate.of(2021, Month.APRIL, 1), 400),
new Data(LocalDate.of(2021, Month.MAY, 1), 500),
new Data(LocalDate.of(2021, Month.JUNE, 1), 600),
new Data(LocalDate.of(2021, Month.JULY, 1), 700),
new Data(LocalDate.of(2021, Month.AUGUST, 1), 800),
new Data(LocalDate.of(2021, Month.SEPTEMBER, 1), 900),
new Data(LocalDate.of(2021, Month.OCTOBER, 1), 1000),
new Data(LocalDate.of(2021, Month.NOVEMBER, 1), 1100),
new Data(LocalDate.of(2021, Month.DECEMBER, 1), 1200)
);
Map<Month, List<Data>> monthlyData = dataList.stream()
.collect(Collectors.groupingBy(data -> data.getDate().getMonth()));
System.out.println(monthlyData);
}
}
class Data {
private LocalDate date;
private int value;
public Data(LocalDate date, int value) {
this.date = date;
this.value = value;
}
public LocalDate getDate() {
return date;
}
public int getValue() {
return value;
}
@Override
public String toString() {
return "Data{" +
"date=" + date +
", value=" + value +
'}';
}
}
```
运行结果:
```
{JANUARY=[Data{date=2021-01-01, value=100}], FEBRUARY=[Data{date=2021-02-01, value=200}], MARCH=[Data{date=2021-03-01, value=300}], APRIL=[Data{date=2021-04-01, value=400}], MAY=[Data{date=2021-05-01, value=500}], JUNE=[Data{date=2021-06-01, value=600}], JULY=[Data{date=2021-07-01, value=700}], AUGUST=[Data{date=2021-08-01, value=800}], SEPTEMBER=[Data{date=2021-09-01, value=900}], OCTOBER=[Data{date=2021-10-01, value=1000}], NOVEMBER=[Data{date=2021-11-01, value=1100}], DECEMBER=[Data{date=2021-12-01, value=1200}]}
```
可以看到,数据按照月份分组,并且以Map的形式存储。你可以根据需要进一步处理或输出这些数据。
相关推荐
![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)