Collection sort
时间: 2025-02-22 11:26:48 浏览: 11
集合排序的方法
Java 中的集合排序方式
在Java中,可以通过多种方式进行集合排序。对于基本类型的列表,可以直接利用Collections.sort()
方法来按照自然顺序进行排序[^3]。
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> originalList = new ArrayList<>();
originalList.add(1);
originalList.add(100);
originalList.add(50);
originalList.add(20);
originalList.add(35);
originalList.add(2);
Collections.sort(originalList, Integer::compareTo); // 使用自然顺序排序
System.out.println("排序后的列表:" + originalList.toString());
}
}
当涉及到更复杂的对象时,则可能需要提供自定义的比较逻辑。这通常通过实现Comparator
接口完成,并将其作为参数传递给sort
方法[^4]。
class Person implements Comparable<Person>{
private String name;
private int age;
public Person(String n, int a){
this.name=n;
this.age=a;
}
@Override
public int compareTo(Person p){
return Integer.compare(this.age,p.getAge());
}
// getter and setter methods...
}
// 自定义比较器用于按年龄降序排列人员名单
Comparator<Person> byDescendingOrderOfAge = (p1, p2)->Integer.compare(p2.getAge(), p1.getAge());
List<Person> people = Arrays.asList(new Person("Alice", 30),new Person("Bob", 25));
people.sort(byDescendingOrderOfAge);
另外,在较新的版本如JDK 1.8及以上,还可以采用更加简洁的方式来进行复杂条件下的排序操作。例如,基于Lambda表达式的写法可以使代码更为紧凑易读[^5]:
Map<String, Integer> map = Map.ofEntries(
entry("apple", 3),
entry("banana", 1),
entry("orange", 2));
List<String> sortedKeysByValueAsc = map.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.map(Map.Entry::getKey)
.collect(Collectors.toList());
System.out.println(sortedKeysByValueAsc); // 输出 ["banana", "orange", "apple"]
以上展示了不同场景下如何有效地对各种形式的数据结构执行排序任务。无论是简单的数值型还是较为复杂的实体类实例组成的集合都可以找到合适的解决方案。
相关推荐


















