我有一类称为Contact具有Date lastUpdated;可变的。
Contact
Date lastUpdated;
我想Contact退出List<Contact>具有最大lastUpdated变量的。
List<Contact>
lastUpdated
我知道可以通过编写一个自定义比较器并使用来完成此操作Collections.max,但是我想知道在Java 8中是否可以通过使用自定义比较器来完成此操作,因为我只想使用一个最长日期仅出现在我的代码中的某个位置,并且Contact该类不应始终使用lastUpdated变量来比较实例。
Collections.max
并且Contact类不应该总是使用lastUpdated变量来比较实例
因此,每当要按实例的lastUpdated属性比较多个实例时,就必须提供一个自定义比较器,因为这意味着该类在默认情况下无法与此字段进行比较。
Comparator<Contact> cmp = Comparator.comparing(Contact::getLastUpdated);
如您所知,您可以使用Collections.max或Stream API来根据该字段获取max实例,但是您不可避免地要编写自定义比较器。