sorted() 默认是正序排序(即从小到大或从A到Z的顺序)。如果你想要倒序排序(即从大到小或从Z到A的顺序),可以使用 Comparator.reverseOrder()Comparator.reversed() 方法。

正序与倒序排序的示例

1. 正序排序(默认)

正序排序是 Stream API 中 sorted() 的默认行为:

plans = plans.stream() .sorted(Comparator.comparing(plan -> 
Integer.parseInt(plan.getCurTerm()))) 
.collect(Collectors.toList());
2. 倒序排序

要实现倒序排序,可以使用 reversed() 方法:

        plans = plans.stream()
                .sorted(Comparator.comparing((PingankjRepaymentPlan plan) -> 
Integer.parseInt(plan.getCurTerm())).reversed())
                .collect(Collectors.toList());

结合 thenComparing 的倒序排序

如果你需要在主排序条件倒序的情况下,还需要次排序条件正序或倒序,可以这样写:

plans = plans.stream() .sorted(Comparator.comparing(plan -> 
Integer.parseInt(plan.getCurTerm())).reversed() 
.thenComparing(PingankjRepaymentPlan::getModifyTime)) // 次排序条件保持正序 
.collect(Collectors.toList());

如果你想次排序条件也倒序,可以在 thenComparing 后面加 .reversed()

        plans = plans.stream()
                .sorted(Comparator.comparing((PingankjRepaymentPlan plan) -> 
Integer.parseInt(plan.getCurTerm())).reversed()
                        .thenComparing(PingankjRepaymentPlan::getModifyTime).reversed())
                .collect(Collectors.toList());

总结

  • 正序排序Comparator.comparing(...)
  • 倒序排序Comparator.comparing(...).reversed()
  • 次排序条件的倒序thenComparing(...).reversed()
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐