Comparator.comparing
时间: 2023-10-13 16:09:27 浏览: 79
Comparator.comparing 是Java 8中引入的一个静态方法,用于创建一个比较器(Comparator)对象。它接受一个函数式接口 Function 作为参数,该接口定义了将要比较的对象的键(key)的提取方法。Comparator.comparing 方法返回的比较器对象会按照提取的键进行排序。
例如,可以使用以下代码创建一个比较器,按照人名字母顺序对 Person 对象进行排序:
```
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 30));
people.add(new Person("Charlie", 20));
Comparator<Person> byName = Comparator.comparing(Person::getName);
Collections.sort(people, byName);
```
在上面的代码中,byName 是一个比较器对象,它按照 getName 方法提取的人名进行排序。通过调用 Collections.sort 方法,将会对 people 列表进行排序,按照人名字母顺序进行排序。
相关问题
comparator.comparing
`comparator.comparing` 是 Java 8 中用于创建比较器的工厂方法。它返回一个 `Comparator` 接口的实例,该实例按照给定的键比较两个对象。键通常是对象中的某个字段。 例如:
```
List<Person> people = ...;
people.sort(Comparator.comparing(Person::getLastName));
```
上面的代码将人员列表按照姓氏排序
Comparator.comparing 倒序
`Comparator.comparing()` 是Java 8及后续版本中用于创建比较器的方法,它允许你通过函数式编程的方式指定比较的关键字。当你想要得到倒序排列的结果时,通常会结合 `Comparator.reverseOrder()`。
例如,如果你想根据 `Map<String, Integer>` 中的数值大小进行降序排序,可以这样做:
```java
import java.util.*;
List<Map<String, Integer>> maps = ... // 要排序的map列表
Comparator<Map<String, Integer>> naturalComparator = Comparator.comparingInt(
map -> (int) map.get("value") // 假设 "value" 是你想使用的键
);
Comparator<Map<String, Integer>> reverseComparator = naturalComparator.reversed();
Collections.sort(maps, reverseComparator);
```
这将导致 `maps` 列表按 "value" 的降序进行排序。
阅读全文