【发布时间】:2020-02-06 23:28:55
【问题描述】:
我有一个这样的模型
class Person {
Instant updateDate; // mandatory
List<Account> accounts; // can be empty
}
class Account {
Instant accountUpdateDate; // can be null
}
假设我有一个人员列表(每个人都包含可以为空的帐户列表)
如何获取具有最大 accountUpdateDate 的人,否则我应该检索具有最大 updateDate 的人。
类似的东西
Comparator<Person> UPDATE_DATE_COMPARATOR = Comparator
.comparing(person -> person.getAccounts().stream().map(Account::getAccountUpdateDate)..., Comparator.nullsFirst(naturalOrder()))
.thenComparing(Person::getUpdateDate));
Collections.max(personList, UPDATE_DATE_COMPARATOR);
【问题讨论】:
标签: java collections java-8 java-stream comparator