java中如何排序
排序方法概述
Java中排序可以通过多种方式实现,包括使用内置的Arrays.sort()和Collections.sort()方法,或自定义比较器(Comparator)进行复杂排序。
使用Arrays.sort()排序数组
对于基本类型数组(如int[]、double[]),Arrays.sort()默认按升序排列:
int[] numbers = {5, 2, 9, 1};
Arrays.sort(numbers); // 结果为 [1, 2, 5, 9]
对于对象数组(如String[]),同样适用:
String[] names = {"John", "Alice", "Bob"};
Arrays.sort(names); // 结果为 ["Alice", "Bob", "John"]
使用Collections.sort()排序集合
对List集合(如ArrayList)排序需使用Collections.sort():
List<Integer> list = new ArrayList<>(Arrays.asList(5, 2, 9, 1));
Collections.sort(list); // 结果为 [1, 2, 5, 9]
自定义排序规则
通过实现Comparator接口可定义自定义排序逻辑。例如按字符串长度排序:
Comparator<String> byLength = (s1, s2) -> s1.length() - s2.length();
String[] words = {"apple", "banana", "pear"};
Arrays.sort(words, byLength); // 结果为 ["pear", "apple", "banana"]
降序排序
使用Comparator.reverseOrder()或自定义比较器实现降序:
List<Integer> nums = Arrays.asList(3, 1, 4);
Collections.sort(nums, Comparator.reverseOrder()); // 结果为 [4, 3, 1]
对象属性排序
对自定义类对象排序需实现Comparable接口或使用Comparator。例如按Person的age排序:
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<>();
// 添加Person对象
Collections.sort(people); // 按age升序
并行排序
Java 8+提供并行排序(Arrays.parallelSort())提高大数据量性能:

int[] largeArray = new int[1000000];
Arrays.parallelSort(largeArray);






