📅  最后修改于: 2023-12-03 15:01:33.132000             🧑  作者: Mango
Java中的Collections.reverseOrder()是一个静态方法,它返回一个Comparator的逆序排列结果。在集合排序中,Comparator是定义对象之间比较规则的接口。通常我们使用Collections.sort()对集合进行排序,可以在sort()中传递一个Comparator参数来定义排序规则。但是如果我们需要逆序排列,则可以使用Collections.reverseOrder()方法来获取一个逆序排列的Comparator。
public static <T> Comparator<T> reverseOrder();
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ReverseOrderExample {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(List.of(3, 6, 2, 9, 1, 8, 5, 4, 7));
System.out.println("原始集合:" + list);
Comparator<Integer> descendingOrder = Collections.reverseOrder();
Collections.sort(list, descendingOrder);
System.out.println("逆序排列后的集合:" + list);
}
}
输出:
原始集合:[3, 6, 2, 9, 1, 8, 5, 4, 7]
逆序排列后的集合:[9, 8, 7, 6, 5, 4, 3, 2, 1]
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ReverseOrderExample {
static class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public static void main(String[] args) {
List<Person> personList = new ArrayList<>(List.of(
new Person("Tom", 32),
new Person("Jerry", 24),
new Person("Alice", 28)
));
System.out.println("原始集合:" + personList);
Comparator<Person> descendingOrder = Collections.reverseOrder(
Comparator.comparingInt((Person p) -> p.age)
);
Collections.sort(personList, descendingOrder);
System.out.println("逆序排列后的集合:" + personList);
}
}
输出:
原始集合:[Person{name='Tom', age=32}, Person{name='Jerry', age=24}, Person{name='Alice', age=28}]
逆序排列后的集合:[Person{name='Tom', age=32}, Person{name='Alice', age=28}, Person{name='Jerry', age=24}]
Collections.reverseOrder()方法可以方便地获取一个逆序排列的Comparator对象,用于集合排序。需要注意的是,在自定义对象排序时,需要先定义一个自定义比较规则的Comparator,并使用Collections.reverseOrder()对它进行逆序排列。