java list.sort多条件排序
时间: 2025-02-02 07:55:08 浏览: 43
### Java 中 List 的多条件排序
在 Java 中,可以利用 `Comparator` 接口以及 Lambda 表达式来实现基于多个字段的复杂排序逻辑。下面是一个具体的例子,展示如何按照对象的不同属性进行升序或降序排列。
假设有一个表示员工信息的数据类:
```java
public class Employee {
private String name;
private int age;
private double salary;
// 构造函数、getter 和 setter 方法省略...
}
```
为了对包含此类实例的列表执行多级排序操作,可采用如下方式定义比较器并应用至 Stream API 上:
```java
import java.util.*;
import java.util.stream.Collectors;
// 创建一些测试数据
List<Employee> employees = Arrays.asList(
new Employee("Alice", 30, 7500),
new Employee("Bob", 24, 6800),
new Employee("Charlie", 30, 9000),
new Employee("David", 28, 7000)
);
// 使用 Comparator 链接多个条件进行排序
employees.sort(Comparator.comparing(Employee::getName)
.thenComparingInt(Employee::getAge)
.thenComparingDouble(Employee::getSalary));
// 或者通过流的方式处理
List<Employee> sortedEmployees = employees.stream()
.sorted(Comparator.comparing(Employee::getName)
.thenComparingInt(Employee::getAge)
.thenComparingDouble(Employee::getSalary))
.collect(Collectors.toList());
```
上述代码片段展示了两种不同的方法来进行多条件排序:一种是直接调用 `sort()` 方法修改原集合;另一种则是借助于 Stream 流创建一个新的已排序副本[^1]。
对于更复杂的场景,比如需要自定义某些特定规则下的顺序调整,则可以在相应位置插入额外的逻辑判断语句完成定制化需求。
阅读全文
相关推荐



















