Lambda里时间排序,日期最大、最小值

Java中通过Lambda进行时间排序,获取日期最大最小值的方法


一、使用Lambda根据对象中的时间进行排序

//从小到大 -> 升序排列
List<HistoryInfo> historyInfoList = historyInfos
        .stream()
        .sorted(Comparator.comparing(HistoryInfo::getStartTime))
        .collect(Collectors.toList());

//从大到小 -> 降序排列
historyInfoList = historyInfos
        .stream()
        .sorted(Comparator.comparing(HistoryInfo::getStartTime)
        .reversed())
        .collect(Collectors.toList());

二、获取日期最大值、最小值的方法

已知实体firstHistory中时间类型是Date,先使用firstHistory.stream().min()或.max(),获取符合条件的Optinal实体,再通过.isPresent()方法判断其是否存在,最后使用.get()方法获取到对象。

//最大值max(),最小值min(),在相同位置替换即可
Optional<HistoryInfo> historyOptional = historyInfos.stream()
        .max(Comparator.comparing(HistoryInfo::getEndTime));
        
if(historyOptional.present && historyOptional.get().getEndTime()!=null){
        HistoryInfo firtstHistory = historyOptional.get();
}
posted @ 2022-11-15 14:17  LightGrass  阅读(3443)  评论(0)    收藏  举报