实现了comparator接口但传入Arrays.sort出错

kasoya 2016-12-31 11:31:20
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>了,请问为什么说参数不对呢?
...全文
278 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zm12397 2016-12-31
  • 打赏
  • 举报
回复
我其实也不咋会用这论坛
kasoya 2016-12-31
  • 打赏
  • 举报
回复
引用 1 楼 zm12397 的回复:
我运行了一下,没问题啊,你是没导包吗? import java.util.Comparator; 这是输出结果: [nikita, amy, mike, percy] [amy, mike, nikita, percy] [amy, mike, percy, nikita] [amy, mike, percy, nikita]
我去(ーー゛)还真是,谢谢解答...另外问下,你知道这论坛提问时贴代码怎么让他好看些吗?现在贴过来直接没有缩进了
zm12397 2016-12-31
  • 打赏
  • 举报
回复
我运行了一下,没问题啊,你是没导包吗? import java.util.Comparator; 这是输出结果: [nikita, amy, mike, percy] [amy, mike, nikita, percy] [amy, mike, percy, nikita] [amy, mike, percy, nikita]

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧