Java Arrays.sort() 反转
时间: 2025-06-15 09:51:08 浏览: 20
### Java 中 Arrays.sort() 实现反向排序
对于基本数据类型的数组,`Arrays.sort()` 默认按照升序排列。为了实现降序排列,可以通过 `Collections.reverseOrder()` 方法来指定逆序比较器。
```java
import java.util.Arrays;
import java.util.Collections;
public class DescendingSortExample {
public static void main(String[] args) {
Integer[] array = {4, 6, 8, 2, 1, 4, 9, 2, 4};
// 使用 reverseOrder 比较器进行降序排序
Arrays.sort(array, Collections.reverseOrder());
for (Integer num : array) {
System.out.print(num + " ");
}
}
}
```
上述代码展示了如何利用 `Collections.reverseOrder()` 来改变默认的自然排序方向,从而达到降序的效果[^3]。
当处理的是对象而非基本类型时,还可以通过自定义 `Comparator` 接口的方式来自定义排序逻辑:
```java
import java.util.Arrays;
import java.util.Comparator;
class Person implements Comparable<Person> {
String name;
int age;
Person(String n, int a){
this.name=n;
this.age=a;
}
@Override
public int compareTo(Person p) {
return Integer.compare(this.age, p.age);
}
}
public class CustomComparatorExample {
public static void main(String[] args) {
Person[] people = new Person[]{
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35)
};
// 自定义 Comparator 进行年龄降序排序
Arrays.sort(people, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return Integer.compare(o2.age, o1.age); // 注意这里o2和o1的位置交换用于实现降序
}
});
for (Person person : people) {
System.out.println(person.name + ": " + person.age);
}
}
}
```
这段代码说明了如果想要对复杂对象进行排序,应该怎样编写自己的 `Comparator` 并将其传递给 `Arrays.sort()` 函数以完成特定需求下的排序操作[^1]。
阅读全文
相关推荐



















