如何用java排序
使用 Java 内置排序方法
Java 提供了多种内置的排序方法,适用于数组和集合。
数组排序
使用 Arrays.sort() 方法对数组进行排序:
import java.util.Arrays;
int[] numbers = {5, 3, 9, 1, 6};
Arrays.sort(numbers); // 升序排序
System.out.println(Arrays.toString(numbers)); // 输出 [1, 3, 5, 6, 9]
集合排序
使用 Collections.sort() 方法对 List 进行排序:

import java.util.ArrayList;
import java.util.Collections;
List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 9, 1, 6));
Collections.sort(numbers); // 升序排序
System.out.println(numbers); // 输出 [1, 3, 5, 6, 9]
自定义排序规则
可以通过 Comparator 接口定义自定义排序规则。
降序排序

Arrays.sort(numbers, Collections.reverseOrder()); // 数组降序(需 Integer[])
Collections.sort(numbers, Collections.reverseOrder()); // 集合降序
自定义对象排序
假设有一个 Person 类,按 age 排序:
class Person {
String name;
int age;
// 构造方法、Getter/Setter 省略
}
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 20));
// 按年龄升序
Collections.sort(people, Comparator.comparingInt(Person::getAge));
// 按年龄降序
Collections.sort(people, Comparator.comparingInt(Person::getAge).reversed());
使用 Java 8 Stream 排序
利用 Stream API 进行排序:
List<Integer> numbers = Arrays.asList(5, 3, 9, 1, 6);
List<Integer> sorted = numbers.stream()
.sorted() // 升序
.collect(Collectors.toList());
List<Integer> reversed = numbers.stream()
.sorted(Comparator.reverseOrder()) // 降序
.collect(Collectors.toList());
实现自定义排序算法
如果需要手动实现排序算法(如快速排序、归并排序),以下是快速排序的示例:
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
quickSort(arr, low, pivot - 1);
quickSort(arr, pivot + 1, high);
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
swap(arr, i, j);
}
}
swap(arr, i + 1, high);
return i + 1;
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
总结
- 内置方法:
Arrays.sort()和Collections.sort()适用于大多数场景。 - 自定义排序:通过
Comparator实现灵活排序规则。 - Stream API:适合函数式编程风格的排序。
- 手动实现:理解算法原理时可用,但生产环境建议优先使用内置方法。






