List 多字段排序
时间: 2024-10-16 16:01:22 浏览: 24
C# List OrderBy 动态多字段排序
4星 · 用户满意度95%
在Java中,`List` 排序通常是通过`Collections.sort()`方法配合自定义的比较器(Comparator)来实现的,特别是当列表中的元素不是基本类型,而是包含多个字段需要排序的时候。例如,如果你有一个员工列表,每个员工有姓名和年龄两个属性,你可以创建一个类来表示员工,并实现`Comparable`接口或者提供一个匿名内部类来进行复合字段排序。
```java
class Employee {
String name;
int age;
// 构造函数、getter和setter省略
@Override
public int compareTo(Employee other) {
int result = this.age - other.age; // 首先按年龄排序
if (result == 0) { // 年龄相同时再按名字排序
return this.name.compareTo(other.name);
}
return result;
}
}
// 使用自定义比较器排序
List<Employee> employees = ...;
Collections.sort(employees);
// 或者使用匿名内部类
List<Employee> sortedEmployees = employees.stream()
.sorted((e1, e2) -> {
int ageCompare = Integer.compare(e1.getAge(), e2.getAge());
return ageCompare != 0 ? ageCompare : e1.getName().compareTo(e2.getName());
})
.collect(Collectors.toList());
```
阅读全文