程序出错,报异常Comparison method violates its general contract!

qq_37620685 2017-02-24 06:07:44
好像是调用集合排序方法的时候出错了,就是Collections的sort方法。
...全文
418 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
曾阿牛_ 2017-02-27
  • 打赏
  • 举报
回复
2楼正解666
  • 打赏
  • 举报
回复
jiajing1990_ 2017-02-24
  • 打赏
  • 举报
回复
你用的jdk是1.7的版本吧 这是因为JDK7底层的排序算法换了,JDK7中的Collections.Sort方法实现中要求,如果两个值是相等的,那么compare方法需要返回0,否则 可能 会在排序时抛错(这个异常并不是频繁出现的),而JDK6是没有这个限制的。所以在比较时,我们必须要考虑两个值相等的情况,而且返回的值需要为 0. 加上在调用Collections.sort(list,new PinyinComparator());方法进行排序,避免出现异常 再试试看

62,624

社区成员

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

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