Arrays.sort(planets,(first,second)->first.length()-second.length());
Arrays.sort( planets , (first,second)->first.length()-second.length() );
Arrays.sort(planets,
new Comparator<String>() {
@Override
public int compare(String first, String second) {
return first.length()-second.length();
}
}
);
->
前面的两个参数@Override
public int compare(String first, String second) {
return first.length()-second.length();
}
first.length()-second.length());
其实就是方法体(first, second) -> {
return first.length() - second.length();
}
这是重写排序方法
first和second分别代表第一个参数和第二个参数,你取别的名字也行
first.length()-second.length() 是告诉Arrays 当你的数组中有多个值的时候 你是怎么比较他们的大小的
返回值为0是相等, 小于0 是 first > second, 大于0 是 first < second
(first,second)->first.length()-second.length()相当于一个匿名函数,类似
new Comparer<String>() {
@override
int compareTo(String first, String second) {
return first.length()-second.length();
}
}
这个函数是你定义但是sort函数调用的,函数的参数first second会由sort去传入