一尘不染

从对象列表Java 8中获取具有最大日期属性的对象

java

我有一类称为Contact具有Date lastUpdated;可变的。

我想Contact退出List<Contact>具有最大lastUpdated变量的。

我知道可以通过编写一个自定义比较器并使用来完成此操作Collections.max,但是我想知道在Java
8中是否可以通过使用自定义比较器来完成此操作,因为我只想使用一个最长日期仅出现在我的代码中的某个位置,并且Contact该类不应始终使用lastUpdated变量来比较实例。


阅读 1477

收藏
2020-12-03

共1个答案

一尘不染

并且Contact类不应该总是使用lastUpdated变量来比较实例

因此,每当要按实例的lastUpdated属性比较多个实例时,就必须提供一个自定义比较器,因为这意味着该类在默认情况下无法与此字段进行比较。

Comparator<Contact> cmp = Comparator.comparing(Contact::getLastUpdated);

如您所知,您可以使用Collections.max或Stream API来根据该字段获取max实例,但是您不可避免地要编写自定义比较器。

2020-12-03