java中如何实现排序
使用 Arrays.sort() 方法
对于数组排序,可以直接使用 Arrays.sort() 方法。该方法对基本类型数组(如 int[]、double[])使用快速排序,对对象数组(如 String[])使用归并排序。
import java.util.Arrays;
int[] numbers = {5, 3, 9, 1};
Arrays.sort(numbers); // 升序排序
System.out.println(Arrays.toString(numbers)); // 输出 [1, 3, 5, 9]
使用 Collections.sort() 方法
对 List 集合(如 ArrayList)排序时,可以使用 Collections.sort() 方法。默认按自然顺序(升序)排序。
import java.util.Collections;
import java.util.ArrayList;
import java.util.List;
List<Integer> list = new ArrayList<>(Arrays.asList(5, 3, 9, 1));
Collections.sort(list); // 升序排序
System.out.println(list); // 输出 [1, 3, 5, 9]
自定义排序规则
通过实现 Comparator 接口或使用 Lambda 表达式,可以自定义排序规则。例如降序排序或按对象属性排序。
// 使用 Comparator 实现降序
Collections.sort(list, (a, b) -> b - a);
System.out.println(list); // 输出 [9, 5, 3, 1]
// 按字符串长度排序
List<String> words = Arrays.asList("apple", "banana", "cherry");
words.sort((s1, s2) -> s1.length() - s2.length());
System.out.println(words); // 输出 [apple, cherry, banana]
对象排序
若需对自定义对象排序,需实现 Comparable 接口并重写 compareTo 方法,或直接传入 Comparator。
class Person implements Comparable<Person> {
String name;
int age;
@Override
public int compareTo(Person other) {
return this.age - other.age; // 按年龄升序
}
}
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 20));
Collections.sort(people); // 按年龄排序
并行排序
对于大型数组,可以使用 Arrays.parallelSort() 方法,利用多线程加速排序。

int[] largeArray = new int[1000000];
Arrays.parallelSort(largeArray);
注意事项
- 基本类型数组排序直接修改原数组,对象排序可能影响原集合。
Comparator的compare方法返回负值、零或正值,分别表示小于、等于或大于。- Java 8+ 推荐使用
List.sort(Comparator)替代Collections.sort(),语法更简洁。






