java 8中Comparator.comparing和reversed

·  阅读 160

java8之后可以对列表按照某个字段进行排序
代码如下:

 res.stream().sorted(Comparator.comparing(RuralEnterpriseInfo::getEndTime).reversed()).collect(Collectors.toList());
复制代码

然后我们知道

RuralEnterpriseInfo::getEndTime
复制代码

可以用如下方式代替

p -> p.getEndTime()
复制代码

然后修改之后代码如下

res.stream().sorted(Comparator.comparing( p -> p.getEndTime()).reversed()).collect(Collectors.toList());
复制代码

这个时候代码是报错的
在这里插入图片描述
然而我们去掉reversed 不进行逆序排 代码就不报错
在这里插入图片描述
通过查看comparing方法和reversed方法我们知道reversed返回一个泛型,而comparing需要一个function也就是这里需要一个对象,所以我们转换一下

res.stream().sorted(Comparator.comparing( (RuralEnterpriseInfo p) -> p.getEndTime()).reversed()).collect(Collectors.toList());
复制代码

如此即可

分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改