jdk8 lambda 排序

1.需要根据某一个字段正序重新组合集合

正序排序时:

//ProductVo 是一个entity
List<ProductVo> tmpLists = new ArrayList<>();
//方法一 stream:
tmpLists.stream().sorted(Comparator.comparing(v->v.getLabelSound()));
tmpLists.stream().sorted(Comparator.comparing(ProductVo::getLabelSound));
//方法二 list sort方法:
labelLists.sort(Comparator.comparing(v->v.getLabelSound()));
labelLists.sort(Comparator.comparing(ProductVo::getLabelSound));

倒序排序时(按照Comparator 中的reversed方法):

会出现一个问题,提示v.getLabelSound() 没有这个方法

解决方法(注意红色部分) :

tmpLists.stream().sorted(Comparator.comparing(ProductLabelVo::getLabelSound).reversed());

2.自然排序

List<String> tmpLists = new ArrayList<>();

tmpLists.stream().sorted(); // 0-9,a-z
tmpLists.stream().sorted(Comparator.reverseOrder());// 9-0,z-a

猜你喜欢

转载自blog.csdn.net/Zsigner/article/details/88219976