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
//最大值max(),最小值min(),在相同位置替换即可
Optional<HistoryInfo> historyOptional = historyInfos.stream()
.max(Comparator.comparing(HistoryInfo::getEndTime));
if(historyOptional.present && historyOptional.get().getEndTime()!=null){
HistoryInfo firtstHistory = historyOptional.get();
}