java中如何降序
数组降序排序
在Java中,可以使用Arrays.sort()方法结合自定义比较器对数组进行降序排序。对于基本类型数组,需要先升序排序再反转;对于对象数组,可直接传入Comparator.reverseOrder()。
import java.util.Arrays;
import java.util.Collections;
// 基本类型数组(如int[])
int[] arr = {5, 2, 9, 1};
Arrays.sort(arr); // 先升序
// 反转数组实现降序
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
// 对象数组(如Integer[])
Integer[] arrObj = {5, 2, 9, 1};
Arrays.sort(arrObj, Collections.reverseOrder());
集合降序排序
对于List集合,可以使用Collections.sort()方法配合Comparator.reverseOrder()实现降序。

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
List<Integer> list = new ArrayList<>(Arrays.asList(5, 2, 9, 1));
Collections.sort(list, Collections.reverseOrder());
自定义对象降序排序
若需要对自定义对象排序,可以在类中实现Comparable接口,或在排序时传入自定义的Comparator。

class Person implements Comparable<Person> {
String name;
int age;
@Override
public int compareTo(Person other) {
return other.age - this.age; // 降序
}
}
// 使用Comparator
List<Person> people = new ArrayList<>();
Collections.sort(people, (p1, p2) -> p2.age - p1.age);
流式处理降序排序
Java 8及以上版本可以使用Stream API的sorted()方法配合Comparator.reverseOrder()。
List<Integer> numbers = Arrays.asList(5, 2, 9, 1);
List<Integer> sortedDesc = numbers.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
优先队列降序排序
优先队列(PriorityQueue)默认是最小堆,可通过传入Comparator.reverseOrder()实现降序。
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Comparator.reverseOrder());
maxHeap.add(5);
maxHeap.add(2);
maxHeap.add(9);
// 出队顺序为9, 5, 2






