温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Comparator 如何逆序

发布时间:2026-10-24 08:58:14 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在 Java 中,Comparator 实现**逆序(降序)**有几种常见方式:


1. 使用 Comparator.reversed()(最常用 ✅)

先定义正常顺序的 Comparator,再调用 reversed():

List<Integer> list = Arrays.asList(3, 1, 2);

list.sort(Comparator.naturalOrder().reversed());
// 或
list.sort(Comparator.comparingInt(Integer::intValue).reversed());

2. 使用 Comparator.reverseOrder()

直接获取逆序比较器:

List<Integer> list = Arrays.asList(3, 1, 2);
list.sort(Comparator.reverseOrder());

适用于自然排序类型(如 Integer、String)。


3. 自定义 Comparator 并反过来写逻辑

List<Integer> list = Arrays.asList(3, 1, 2);

list.sort((a, b) -> b - a);

或更规范地:

list.sort((a, b) -> Integer.compare(b, a));

4. 对象排序时逆序(常见场景 ✅)

class User {
    int age;
    // getter
}

List<User> users = ...;

// 按 age 升序
users.sort(Comparator.comparing(User::getAge));

// 按 age 降序
users.sort(Comparator.comparing(User::getAge).reversed());

5. 多字段排序中的逆序

users.sort(
    Comparator
        .comparing(User::getAge)
        .thenComparing(
            Comparator.comparing(User::getName).reversed()
        )
);

✅ 推荐总结

  • 简单逆序:Comparator.reverseOrder()
  • 链式排序:comparing(...).reversed()
  • 自定义逻辑:(a, b) -> b.compareTo(a)

如果你有具体类型或排序场景,我可以给你更精确的示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手