在Java中,使用sort()方法可以对数组进行排序,sort()方法有两个重载的版本:一个对基本数据类型数组进行排序,一个对对象数组进行排序。
- 对基本数据类型数组排序:
sort()方法可以直接对基本数据类型数组进行升序排序,也可以通过传入Comparator对象对数组进行降序排序。
升序排序示例:
int[] arr = {5, 3, 1, 4, 2}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 3, 4, 5]
降序排序示例:
int[] arr = {5, 3, 1, 4, 2}; Arrays.sort(arr); int n = arr.length; for (int i = 0; i < n / 2; i++) { int temp = arr[i]; arr[i] = arr[n - 1 - i]; arr[n - 1 - i] = temp; } System.out.println(Arrays.toString(arr)); // 输出:[5, 4, 3, 2, 1]
- 对对象数组排序:
对于对象数组,可以实现Comparable接口或者使用Comparator对象来指定排序规则。
实现Comparable接口示例:
class Person implements Comparable{ private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public int compareTo(Person o) { return this.age - o.getAge(); // 按照年龄升序排序 } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } } Person[] people = { new Person("Alice", 20), new Person("Bob", 18), new Person("Charlie", 22) }; Arrays.sort(people); System.out.println(Arrays.toString(people)); // 输出:[Person [name=Bob, age=18], Person [name=Alice, age=20], Person [name=Charlie, age=22]]
使用Comparator对象示例:
class AgeComparator implements Comparator{ @Override public int compare(Person p1, Person p2) { return p2.getAge() - p1.getAge(); // 按照年龄降序排序 } } Person[] people = { new Person("Alice", 20), new Person("Bob", 18), new Person("Charlie", 22) }; Arrays.sort(people, new AgeComparator()); System.out.println(Arrays.toString(people)); // 输出:[Person [name=Charlie, age=22], Person [name=Alice, age=20], Person [name=Bob, age=18]]
以上就是对Java中sort()方法进行数组排序的详细解释,包括对基本数据类型数组和对象数组的升序和降序排序的示例。