如何在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
相关产品推荐
相关产品推荐

