Java 8 sort分类

首先根据降序的sort方法,对list集合中的对象的某个属性进行排序.float getFollowDegree()的返回值时,所以查询出来后进行排序的顺序是降序(DESC,从大到小)的,如果没有reversed()方法的话,就是升序排列(ASC,从小到大).

reversed()作用:有它就是从大到小排列,没有就是从小到大排列

//对listResult进行排序,根据伴随度进行降序F
List<FollowIMSI> collect = listResult.stream()
.sorted(Comparator.comparing(FollowIMSI::getFollowDegree).reversed())
.collect(Collectors.toList());

我们需要的是对followDegree的值降序,如果值相等,再对codeDaysThirty进行降序.所以说,上述代码的理解应该为:
以codeDaysThirty进行降序排列,如果codeDaysThirty相等,再以followDegree进行排序.

所以正确的代码应该是:
//根据伴随度和30天出现比率进行排序
List<FollowIMSI> collect1 = list1.stream()
.sorted(Comparator.comparing(FollowIMSI::getFollowDegree)
.thenComparing(FollowIMSI::getCodeDaysThirsty).reversed())
.collect(Collectors.toList());
注意在getFollowDegree()后是没有reversed()的....

posted @ 2019-01-31 15:35  暖瞳123  阅读(720)  评论(0编辑  收藏  举报