Optional<ArControlLine> minEvent = rmdLineList.stream().
filter(e->e.getDueDays()>0).
min(Comparator.comparing(ArControlLine::getDueDate));
if (minEvent.isPresent()) {
nvLastDate = minEvent.get().getDueDate();
}
Optional<ArControlLine> minEvent = rmdLineList.stream()
.filter(Objects::nonNull)
.min(Comparator.comparing(ArControlLine::getVoucherDate));
if (minEvent.isPresent()) {
invEarliestDate = minEvent.get().getVoucherDate();
}
或者
更简单的方法
invEarliestDate = rmdLineList.stream()
.filter(Objects::nonNull)
.min(Comparator.comparing(ArControlLine::getVoucherDate))
.orElseThrow(NoSuchElementException::new)
.getVoucherDate();
Map<String,Double> _dueCcyMap = rmdLineList.stream().
filter(e->e.getDueDays()>0).
collect(Collectors.groupingBy(
e->e.getCcy(),
// 相加
Collectors.summingDouble(e->e.getOsCcyAmt().doubleValue())));