java sorted 降序
时间: 2025-02-17 09:08:57 浏览: 47
### Java中集合或数组的降序排序方法
对于Java中的集合或数组进行降序排序,可以采用多种方式来达成目标。一种常见的方式是对`Arrays.sort()` 或 `Collections.sort()` 方法提供自定义比较器。
当处理基本数据类型的数组时,可以通过使用`Comparator.comparingInt()` 和 lambda 表达式的组合来创建一个逆向排序逻辑[^1]:
```java
import java.util.Arrays;
int[] array = {1, 2, 3, 4, 5};
Arrays.sort(array);
Arrays.sort(array, (a, b) -> b - a); // 对 int 数组执行降序排序
```
针对对象类型或者是更复杂的结构体,在实现`Comparable`接口的基础上重写`compareTo`方法,或者是在调用`sort`函数的时候传入一个实现了`Comparator`接口的对象作为参数[^2]:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
List<String> list = new ArrayList<>(Arrays.asList("apple", "orange", "banana"));
list.sort(Comparator.reverseOrder()); // 使用预构建的 reverseOrder comparator 进行字符串列表的倒序排列
// 或者通过lambda表达式指定排序规则
list.sort((s1, s2) -> s2.compareTo(s1));
```
如果要对泛型类的实例化对象组成的集合做降序排序,则可以根据具体属性制定相应的比较策略[^3]:
```java
class Person {
private String name;
private Integer age;
public Person(String n, Integer a){
this.name=n;this.age=a;
}
@Override
public String toString(){
return "{name="+this.name+",age="+this.age+"}";
}
}
public class Main{
public static void main(String args[]){
List<Person> persons=new ArrayList<>();
persons.add(new Person("Alice", 30));
persons.add(new Person("Bob", 28));
Collections.sort(persons,(p1,p2)-> p2.getAge().compareTo(p1.getAge()));
System.out.println(persons.toString());
}
}
```
阅读全文
相关推荐


















