可以使用Java 8的Stream API来过滤list对象中小于等于指定日期的数据,然后返回符合条件的第一条数据。

假设list对象的类型是List,其中MyObject是自定义的类,包含一个日期属性。

import java.time.LocalDate;
import java.util.List;
import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        // 假设list是一个包含MyObject对象的列表
        List<MyObject> list = ...;

        // 指定日期
        LocalDate targetDate = LocalDate.of(2021, 6, 1);

        // 使用Stream API过滤并返回符合条件的第一条数据
        Optional<MyObject> result = list.stream()
                .filter(obj -> obj.getDate().isBefore(targetDate) || obj.getDate().isEqual(targetDate))
                .findFirst();

        // 如果存在符合条件的数据,则输出
        result.ifPresent(System.out::println);
    }
}

在上述代码中,使用list.stream()将list对象转换为一个Stream对象,然后使用filter方法过滤出日期小于等于指定日期的数据,最后使用findFirst方法获取符合条件的第一条数据。

注意在filter方法中使用了isBeforeisEqual方法来进行日期的比较,其中isBefore用于判断日期是否早于指定日期,isEqual用于判断日期是否等于指定日期。

最后,使用ifPresent方法判断是否存在符合条件的数据,如果存在则输出

Java 往一个list对象传入一个日期返回小于等于这个日期的一条数据

原文地址: https://www.cveoy.top/t/topic/iVtR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录