需要实现多条件字段排序有很多种方法,我这是使用stream流实现多条件排序方法,个人认为挺不错的,值得共享一波,希望对你也能产生帮助!!!
List<VodDetailDTO> collect = courseVod.parallelStream().map(v -> {
if (v.getVodId().equals(vodId)) {
v.setSort(1);
}else {
v.setSort(0);
}
return v;
}).sorted(Comparator.comparing(VodDetailDTO::getSort).reversed().thenComparing(VodDetailDTO::getSequenc)).collect(Collectors.toList());
stream流的 sorted 排序功能:
第一个排序条件:
Comparator.comparing(VodDetailDTO::getSort).reversed()
这是根据我自定义字段倒序排序
第二个排序条件:
.thenComparing(VodDetailDTO::getSequenc)
这是实体类中原有的排序规则,正序排列的
简短分享,DDDD 🧐