我用非java 8方式编写了我的自定义比较器,如下所示,但即使在阅读了一些博客之后也不清楚,如何使用Comparator.comparing与lambda样式语法进行比较.
class MyCustomComparator implements Comparator<Integer> {
@Override
public int compare(Integer n1, Integer n2) {
String ns1 = Integer.toString(n1) + Integer.toString(n2);
String ns2 = Integer.toString(n2) + Integer.toString(n1);
if (Integer.parseInt(ns1) > Integer.parseInt(ns2)) {
return 1;
} else if (Integer.parseInt(ns1) < Integer.parseInt(ns2))
return -1;
return 0;
}
}
通常Comparator.comparing采用lambda,其中大多数例子我说lamda没有参数.
解决方法:
Comparator.comparing允许您在比较它们之前指定要单独应用于每个对象的转换.由于Comparator需要两个参数才能应用其逻辑,因此不能将其写为Comparator.comparing表达式.