什么keyComparator可以在Comparator.comparing中使用(Function keyExtractor,Comparator keyComparator)?

时间:2018-05-27 19:19:29

标签: java comparator

  

比较器comparing(Function keyExtractor,Comparator keyComparator)

可以像String.CASE_INSENSITIVE_ORDER

一样使用
Comparator<Person> cmp = Comparator.comparing(
             Person::getLastName,
             String.CASE_INSENSITIVE_ORDER);

除了String.CASE_INSENSITIVE_ORDER之外还可以用什么来代替keyComparator?我想不出另一个例子。

1 个答案:

答案 0 :(得分:0)

如果您在询问Comparator<String>课程中有哪些String,那么答案就是没有。

Java 8中的String类只有一个Comparator<String>

然而,这并不意味着你不能使用其他东西。每个Comparator<String>都会在那里工作。如果您不需要不区分大小写的排序,则可以使用Comparator.naturalOrder()Comparator.reverseOrder()或任何您想要的内容。你可以写一个像这样的lambda来传递它(尽管我发现Comparator的静态方法更具可读性):

(x, y) -> Integer.compare(x.length(), y.length())