java 1.list 过滤距离LocalDate类型的有效期截止日期大于一个月2.list过滤 距离LocalDate类型的有效期截止日期小于等于一个月
时间: 2024-11-03 12:23:50 浏览: 20
在Java中,我们可以使用`Stream API`以及`Comparator`来对`List<YourClass>`(假设`YourClass`有一个名为`expirationDate`的`LocalDate`类型的属性)进行过滤操作。这里有两个示例,分别对应两个需求:
1. **过滤有效期截止日期大于一个月的元素**:
```java
import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;
class YourClass {
private LocalDate expirationDate;
// ... 其他构造方法和getter/setter
public static List<YourClass> filterPastOneMonth(List<YourClass> list) {
return list.stream()
.filter(yourClass -> yourClass.getExpirationDate().isAfter(LocalDate.now().minusMonths(1)))
.collect(Collectors.toList());
}
}
// 使用示例
List<YourClass> filteredList = YourClass.filterPastOneMonth(originalList);
```
2. **过滤有效期截止日期小于等于一个月的元素**:
```java
public static List<YourClass> filterWithinOneMonth(List<YourClass> list) {
return list.stream()
.filter(yourClass -> yourClass.getExpirationDate().isBefore(LocalDate.now().plusMonths(1)) ||
yourClass.getExpirationDate().equals(LocalDate.now()))
.collect(Collectors.toList());
}
```
以上代码假设`YourClass`已经实现了`Comparable<YourClass>`或者提供了一个比较方法,以便根据`expirationDate`进行排序和过滤。
阅读全文