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
//最大值max(),最小值min(),在相同位置替换即可
Optional<HistoryInfo> historyOptional = historyInfos.stream()
.max(Comparator.comparing(HistoryInfo::getEndTime));
if(historyOptional.present && historyOptional.get().getEndTime()!=null){
HistoryInfo firtstHistory = historyOptional.get();
}
标签:stream,HistoryInfo,最小值,historyOptional,排序,Lambda
From: https://www.cnblogs.com/LightGrass/p/16892298.html