java8的stream流常用用法sorted

java8的stream流常用用法

  • 持续更新~~,用法案例,项目开发中方便寻找
    • 一. 排序 stream().sorted()
      • 1. 缺省排序字段: 以类属性一升序排序
      • 2. 带排序字段: 以类属性一升序排序,推荐Comparator.reverseOrder()
            • 2.1.升序:不加参数即可
            • 2.2.降序:reversed()和Comparator.reverseOrder(),有区别:
            • 2.3.案例:注意两种写法
      • 3. 多属性排序,降序都以Comparator.reverseOrder()为例

持续更新~~,用法案例,项目开发中方便寻找

每到需要用的时候,翻半天才到案例,都统计在此,方便寻找

一. 排序 stream().sorted()

 public void setVarroleList(List<VarroleEntity> varroleList) {
        if (varroleList != null && varroleList.size() > 0) {
            varroleList = varroleList.stream().sorted(Comparator.comparing(VarroleEntity::getSeq)).collect(Collectors.toList());
        }


        this.varroleList = varroleList;
    }

1. 缺省排序字段: 以类属性一升序排序

list.stream().sorted(Comparator.comparing(::属性一));
// list里面是map的,List> 
list.stream().sorted(Comparator.comparingInt(map -> map.get("key")));

2. 带排序字段: 以类属性一升序排序,推荐Comparator.reverseOrder()

2.1.升序:不加参数即可
2.2.降序:reversed()和Comparator.reverseOrder(),有区别:

reversed():先排序(默认升序),然后降序;
Comparator.reverseOrder():直接降序排序;

2.3.案例:注意两种写法
//先以属性一升序,结果进行属性一降序
list.stream().sorted(Comparator.comparing(::属性一).reversed());
//以属性一降序
list.stream().sorted(Comparator.comparing(::属性一,Comparator.reverseOrder()));

3. 多属性排序,降序都以Comparator.reverseOrder()为例


//属性一升序,属性二降序
list.stream().sorted(Comparator.comparing(::属性一).thenComparing(::属性二,Comparator.reverseOrder()));


//属性一降序,属性二升序
list.stream().sorted(Comparator.comparing(::属性一,Comparator.reverseOrder()).thenComparing(::属性二));


你可能感兴趣的:(后端开发热点代码,java,开发语言)