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