码迷,mamicode.com
首页 > 编程语言 > 详细

java-collections.sort异常Comparison method violates its general contract!

时间:2016-06-30 19:40:09      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

转载:http://www.tuicool.com/articles/MZreyuv

异常信息

java.lang.IllegalArgumentException: Comparison method violates its general contract!
 at java.util.TimSort.mergeHi(TimSort.java:868)
  at java.util.TimSort.mergeAt(TimSort.java:485)
  at java.util.TimSort.mergeCollapse(TimSort.java:408)
at java.util.TimSort.sort(TimSort.java:214)
  at java.util.TimSort.sort(TimSort.java:173)
  at java.util.Arrays.sort(Arrays.java:659)
  at java.util.Collections.sort(Collections.java:217)
...

 

原因

JDK7中的Collections.Sort方法实现中,如果两个值是相等的,那么compare方法需要返回0,否则 可能 会在排序时抛错,而JDK6是没有这个限制的。

if (len2 == 0) {
    throw new IllegalArgumentException("Comparison method violates its general contract!");
}

 

java-collections.sort异常Comparison method violates its general contract!

标签:

原文地址:http://www.cnblogs.com/hwaggLee/p/5630784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!