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