实现了comparator接口但传入Arrays.sort出错
import java.util.Arrays;
public class LengthComparator implements Comparator<String>{
@Override
public int compare(String first, String second){
return first.length()-second.length();
}
public static void main(String[] args ){
String[] names = {"nikita","amy","mike","percy"};
System.out.println(Arrays.toString(names));//原顺序
Arrays.sort(names);
System.out.println(Arrays.toString(names));//默认排序--按字典顺序
//Arrays.sort(names, new LengthComparator());//<---------------------sort方法出错
//The method sort(T[], Comparator<? super T>) in the type
//Arrays is not applicable for the arguments (String[], LengthComparator)
System.out.println(Arrays.toString(names));//按长度排序
Arrays.sort(names, (String first, String second) -> first.length()-second.length());
System.out.println(Arrays.toString(names));//使用--Lambda表达式--实现按字符串长度排序
}
}
这里我觉得LengthComparator已经是Comparator<String>了,请问为什么说参数不对呢?