Arrays.sort(words, (o1, o2) -> {
if (o1.length() == o2.length())
return o1.compareTo(o2);
else {
return Integer.compare(o2.length(), o1.length());
}
});
其作用是将
"cat", "banana", "dog", "nana", "walk", "walker", "dogwalker"
排列成
dogwalker, banana, walker, nana, walk, cat, dog。所谓的逆字典序排列
怎么理解呢?compareTo和Integer.compare都是前面的参数大于后面的那个就返回1,反之为0或者-1.
那么对于arrays.sort的东西,如果o1是walker,o2是cat,那么o1则大于o2,排列时o1再在前。