java | java的sorted 的正序和倒叙怎么写?
java | java的sorted 的正序和倒叙怎么写?
·
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()
更多推荐


所有评论(0)