在 Java 中,Comparator 实现**逆序(降序)**有几种常见方式:
Comparator.reversed()(最常用 ✅)先定义正常顺序的 Comparator,再调用 reversed():
List<Integer> list = Arrays.asList(3, 1, 2);
list.sort(Comparator.naturalOrder().reversed());
// 或
list.sort(Comparator.comparingInt(Integer::intValue).reversed());
Comparator.reverseOrder()直接获取逆序比较器:
List<Integer> list = Arrays.asList(3, 1, 2);
list.sort(Comparator.reverseOrder());
适用于自然排序类型(如 Integer、String)。
List<Integer> list = Arrays.asList(3, 1, 2);
list.sort((a, b) -> b - a);
或更规范地:
list.sort((a, b) -> Integer.compare(b, a));
class User {
int age;
// getter
}
List<User> users = ...;
// 按 age 升序
users.sort(Comparator.comparing(User::getAge));
// 按 age 降序
users.sort(Comparator.comparing(User::getAge).reversed());
users.sort(
Comparator
.comparing(User::getAge)
.thenComparing(
Comparator.comparing(User::getName).reversed()
)
);
Comparator.reverseOrder()comparing(...).reversed()(a, b) -> b.compareTo(a)如果你有具体类型或排序场景,我可以给你更精确的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。