stream流过滤日期范围
时间: 2023-10-02 21:13:24 浏览: 118
可以使用Java 8中的Stream API来过滤日期范围。
假设我们有一个日期列表,我们想要过滤出所有位于某个特定日期范围内的日期。我们可以使用以下代码:
```java
List<LocalDate> dates = Arrays.asList(
LocalDate.of(2021, 1, 1),
LocalDate.of(2021, 2, 1),
LocalDate.of(2021, 3, 1),
LocalDate.of(2021, 4, 1));
LocalDate startDate = LocalDate.of(2021, 2, 1);
LocalDate endDate = LocalDate.of(2021, 3, 31);
List<LocalDate> filteredDates = dates.stream()
.filter(d -> d.isAfter(startDate) && d.isBefore(endDate))
.collect(Collectors.toList());
System.out.println(filteredDates); // 输出 [2021-02-01, 2021-03-01]
```
在这个例子中,我们首先创建了一个包含一些日期的列表。然后,我们定义了一个开始日期和一个结束日期,用于过滤日期列表。最后,我们使用Stream API的`filter`操作来过滤出所有在日期范围内的日期,并将结果放入一个新的列表中。
在上面的代码中,我们使用了`isAfter`和`isBefore`方法来比较日期。如果你想要包含开始日期和结束日期在内,可以使用`isEqual`方法来进行比较。
阅读全文