java如何降序
数组降序排序
使用 Arrays.sort() 结合自定义比较器对数组进行降序排序:

import java.util.Arrays;
import java.util.Collections;
// 对Integer数组降序
Integer[] arr = {5, 2, 9, 1};
Arrays.sort(arr, Collections.reverseOrder());
// 对int数组降序需要转为Integer
int[] primitiveArr = {5, 2, 9, 1};
Integer[] boxedArr = Arrays.stream(primitiveArr).boxed().toArray(Integer[]::new);
Arrays.sort(boxedArr, Collections.reverseOrder());
集合降序排序
使用 Collections.sort() 或流的 sorted() 方法对集合降序:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
List<Integer> list = new ArrayList<>(Arrays.asList(5, 2, 9, 1));
// 方法1
Collections.sort(list, Comparator.reverseOrder());
// 方法2
list.sort(Comparator.reverseOrder());
// 方法3:使用Stream
List<Integer> sortedList = list.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
自定义对象排序
实现 Comparator 接口对自定义对象按字段降序:
class Person {
String name;
int age;
// 构造方法/getters省略
}
List<Person> people = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30)
);
// 按age降序
people.sort(Comparator.comparingInt(Person::getAge).reversed());
// 多字段排序:先按name升序,再按age降序
people.sort(Comparator
.comparing(Person::getName)
.thenComparing(Comparator.comparingInt(Person::getAge).reversed())
);
注意事项
- 基本类型数组(如
int[])需要先转换为包装类数组才能使用Collections.reverseOrder() - 使用
Comparator.reversed()可以反转任何比较器的顺序 - 对于自定义排序规则,建议实现
Comparator接口而非修改对象的compareTo方法






