java数组如何排序
使用Arrays.sort()方法
Java中Arrays.sort()是最简单的数组排序方法,适用于基本类型和对象数组。
基本类型数组排序(升序)
int[] arr = {5, 2, 9, 1, 5};
Arrays.sort(arr); // 结果为 [1, 2, 5, 5, 9]
对象数组排序(需实现Comparable或自定义Comparator)
String[] strArr = {"banana", "apple", "pear"};
Arrays.sort(strArr); // 按字典序升序排列
自定义排序规则(Comparator)
通过Comparator接口实现自定义排序逻辑,例如降序或按特定字段排序。

降序排列
Integer[] arr = {5, 2, 9, 1, 5};
Arrays.sort(arr, (a, b) -> b - a); // 结果为 [9, 5, 5, 2, 1]
按对象属性排序

class Person {
String name;
int age;
// 构造方法省略
}
Person[] people = {new Person("Alice", 30), new Person("Bob", 25)};
Arrays.sort(people, (p1, p2) -> p1.age - p2.age); // 按年龄升序
并行排序(Arrays.parallelSort())
对于大型数组,可以使用并行排序提高性能。
int[] largeArr = new int[1000000];
Arrays.parallelSort(largeArr); // 并行排序
手动实现排序算法
如需完全控制排序过程,可手动实现算法(如快速排序、冒泡排序)。
快速排序示例
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;
}
注意事项
- 对象数组:必须实现
Comparable接口或提供Comparator,否则会抛出ClassCastException。 - 稳定性:
Arrays.sort()对对象数组使用稳定排序(归并排序),基本类型数组使用快速排序。 - 性能:
parallelSort()在多核环境下对大数组(>1万元素)更高效。






