Java 中数组排序方法有三种:arrays.sort()适用于基本类型和实现 comparable 接口的对象类型;comparator.comparing()适用于不实现 comparable 接口的对象类型;Collection.sort()适用于通过 collections 工具类包装的数组。
如何在 Java 中给数组排序
Java 中提供多种方法可对数组进行排序,具体方法取决于数组元素的数据类型以及所需的排序算法。
1. Arrays.sort()
- 适用数据类型:基本类型(int、double、char 等)和对象类型(实现 Comparable 接口)
- 算法:快速排序(默认)或归并排序(当数组过大时)
- 语法:Arrays.sort(array);
例如:
int[] numbers = {5, 2, 8, 3, 1}; Arrays.sort(numbers); // 排序数组 System.out.println(Arrays.toString(numbers)); // 输出:[1, 2, 3, 5, 8]
2. Comparator.comparing()
- 适用数据类型:对象类型(不实现 Comparable 接口)
- 算法:自定义比较器
- 语法:Arrays.sort(array, Comparator.comparing(field));
例如:
class Person { private String name; private int age; // ... } Person[] people = { new Person("Bob", 30), new Person("Alice", 25), new Person("John", 40) }; Arrays.sort(people, Comparator.comparing(Person::getName)); // 按姓名排序 System.out.println(Arrays.toString(people)); // 输出:[Alice, Bob, John]
3. Collection.sort()
- 适用数据类型:通过 Collections 工具类包装的数组
- 算法:自定义 Comparator 或使用自然排序(实现 Comparable 接口)
- 语法:Collections.sort(list);
例如:
List<Integer> numbers = Arrays.asList(5, 2, 8, 3, 1); Collections.sort(numbers); // 排序集合 System.out.println(numbers); // 输出:[1, 2, 3, 5, 8]