list集合sort
时间: 2025-01-13 19:49:20 浏览: 15
Java 中 List 集合的排序
在 Java 中,List
接口实现了 Collection
接口,允许存储重复元素并保持插入顺序。为了对 List
进行排序,Java 提供了多种内置方法。
使用 Collections.sort 方法进行自然排序
对于那些对象本身实现了 Comparable
接口的数据类型(如 Integer
, Double
, 或者 String
),可以直接调用 Collections.sort()
来执行升序排列[^1]:
import java.util.*;
public class SortExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(7, 2, 9, 1);
// 对列表按自然顺序排序
Collections.sort(numbers);
System.out.println("Sorted list (natural order): " + numbers);
}
}
此代码片段展示了如何创建一个整数列表,并通过 Collections.sort()
函数对其进行排序[^3]。
自定义 Comparator 实现自定义排序逻辑
当处理未实现 Comparable
的类实例或希望按照特定规则排序时,则需提供第二个参数——Comparator
接口的一个实现来指定比较策略[^2]:
import java.util.*;
class Person implements Comparable<Person> {
private String name;
public Person(String n){
this.name=n;
}
@Override
public int compareTo(Person otherPerson) {
return this.name.compareTo(otherPerson.getName());
}
public String getName(){
return name;
}
}
public class CustomSortExample {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person("Alice"));
people.add(new Person("Bob"));
// 定义降序排序器
Comparator<Person> reverseOrderByName = (p1, p2) -> p2.getName().compareTo(p1.getName());
// 应用自定义排序器
Collections.sort(people, reverseOrderByName);
for (var person : people) {
System.out.println(person.getName());
}
}
}
这段程序先构建了一个简单的 Person
类及其对应的可比较行为;接着,在主函数里利用匿名内部类的形式定义了一种新的比较方式用于逆向排序姓名字段。
相关推荐


















