【发布时间】:2020-12-12 09:39:10
【问题描述】:
我有一个部门列表和地址列表。每个地址都有一个带有起始日期的句点。 以下代码在每个部门中查找具有最新日期的地址并删除所有其他地址。它似乎有效,但我相信它可以以更优雅的方式完成。有什么建议吗?
List<Department> departments = fetchDepartments();
departments.forEach(department -> {
Date fromDate = department.getAddresses().stream().map(address ->
address.getPeriod().getFromDate()).max(Date::compareTo).get();
department.setAddresses(department.getAdresses().stream()
.filter(address -> address.getPeriod().getDateFrom().equals(fromDate))
.collect(Collectors.toList()));
});
【问题讨论】:
-
返回的值是
getFromDate唯一的吗?或者新地址可以不止一个?