You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中对类列表按id进行升序/降序排序

Java中对Complaints列表按id排序的实现方法

升序排序

方式1:Java 7及之前版本(匿名Comparator)

List<Complaints> complaintsList = // 你的列表实例
Collections.sort(complaintsList, new Comparator<Complaints>() {
    @Override
    public int compare(Complaints c1, Complaints c2) {
        return Integer.compare(c1.getId(), c2.getId());
    }
});

方式2:Java 8+简化写法(Lambda/方法引用)

// Lambda表达式
Collections.sort(complaintsList, (c1, c2) -> Integer.compare(c1.getId(), c2.getId()));

// 更简洁的方法引用
Collections.sort(complaintsList, Comparator.comparingInt(Complaints::getId));

方式3:Stream API生成新列表(不修改原列表)

List<Complaints> sortedAscList = complaintsList.stream()
    .sorted(Comparator.comparingInt(Complaints::getId))
    .collect(Collectors.toList());

降序排序

方式1:基于升序Comparator反转(Java 8+)

Collections.sort(complaintsList, Comparator.comparingInt(Complaints::getId).reversed());

方式2:手动实现降序逻辑

Collections.sort(complaintsList, (c1, c2) -> Integer.compare(c2.getId(), c1.getId()));

方式3:Stream API生成降序新列表

List<Complaints> sortedDescList = complaintsList.stream()
    .sorted(Comparator.comparingInt(Complaints::getId).reversed())
    .collect(Collectors.toList());

额外方案:让Complaints实现Comparable接口

如果业务中多数场景需要按id升序排序,可以让类实现Comparable接口,简化默认排序逻辑:

public class Complaints implements Comparable<Complaints> {
    private int id;
    private String state;

    // 构造方法、getter、setter等

    @Override
    public int compareTo(Complaints other) {
        return Integer.compare(this.id, other.id);
    }
}

之后直接调用Collections.sort(complaintsList)即可完成id升序排序,降序仍需配合reversed()或手动反转逻辑。

内容的提问来源于stack exchange,提问作者SnNaCk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 04:00:52