1.steam分组过滤
Map<String, List<Measure>> map = measures.stream().collect(Collectors.groupingBy(Measure::getModeId));
2.steam过滤条件
List<Measure> opList = measures.stream().filter(entity -> entity.getMultiplier().compareTo(BigDecimal.valueOf(1)) == 0).toList();
3.map循环返回集合简易写法
map.keySet().forEach(key -> keySet.add(key));
4.steam排序
1.对象集合以类属性一升序排序
list.stream().sorted(Comparator.comparing(类::属性一));
2.对象集合以类属性一降序排序 注意两种写法
2.1先以属性一升序,结果进行属性一降序
list.stream().sorted(Comparator.comparing(类::属性一).reversed());
2.2直接以属性一降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));
3.对象集合以类属性一升序 属性二升序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二));
4.对象集合以类属性一降序 属性二升序 注意两种写法
4.1先以属性一升序,升序结果进行属性一降序,再进行属性二升序
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));
4.2先以属性一降序,再进行属性二升序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二));
5.对象集合以类属性一降序 属性二降序 注意两种写法
5.1先以属性一升序,升序结果进行属性一降序,再进行属性二降序
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二,Comparator.reverseOrder()));
5.2先以属性一降序,再进行属性二降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二,Comparator.reverseOrder()));
6.对象集合以类属性一升序 属性二降序 注意两种写法
6.1先以属性一升序,升序结果进行属性一降序,再进行属性二升序,结果进行属性一降序属性二降序
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二).reversed());
6.2先以属性一升序,再进行属性二降序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二,Comparator.reverseOrder()));
排序原网址:https://blog.51cto.com/u_16213668/11103095
标签:常用,Comparator,个人,记录,降序,comparing,升序,stream,属性
From: https://www.cnblogs.com/lengnuanzizhi/p/18547412