Comparator.comparing
时间: 2023-10-13 21:23:25 浏览: 41
Comparator.comparing 是一个静态方法,可以用来创建一个比较器 Comparator。它需要一个 Function 参数,用来将对象映射为可比较的值。比如:
```
List<String> fruits = Arrays.asList("apple", "banana", "cherry", "date");
Comparator<String> lengthComparator = Comparator.comparing(String::length);
fruits.sort(lengthComparator);
System.out.println(fruits); // [date, apple, banana, cherry]
```
这个例子中,我们创建了一个比较器 lengthComparator,它将字符串映射为它们的长度,然后按长度升序排序。Comparator.comparing 还有其他的重载版本,可以用来支持更复杂的映射方式。
相关问题
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" 的降序进行排序。
阅读全文