码迷,mamicode.com
首页 > 其他好文 > 详细

jdk7 中Collections.sort 异常

时间:2014-06-25 19:47:27      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   java   http   

Collections.sort 异常

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.mergeForceCollapse(TimSort.java:426)
        at java.util.TimSort.sort(TimSort.java:223)
        at java.util.TimSort.sort(TimSort.java:173)
        at java.util.Arrays.sort(Arrays.java:659)
        at java.util.Collections.sort(Collections.java:217)

代码如下:

Collections.sort(values, new Comparator<Map.Entry<String, Float>>() {    
<span style="white-space:pre">	</span>public int compare(Map.Entry<String, Float> o1, Map.Entry<String, Float> o2) {  
	<span style="white-space:pre">	</span>return (o2.getValue() > o1.getValue() ? 1 : -1);   
	}   
}); 


是对一个Map数组进行排序,更新了jdk版本后报以上异常,查询了先关资料后,修改了代码如下:

Collections.sort(values, new Comparator<Map.Entry<String, Float>>() {    
	public int compare(Map.Entry<String, Float> o1, Map.Entry<String, Float> o2) {  
		return o2.getValue().compareTo(o1.getValue());
	}   
}); 

异常解决,参考链接:

http://stackoverflow.com/questions/10234038/compare-method-throw-exception-comparison-method-violates-its-general-contract





jdk7 中Collections.sort 异常,布布扣,bubuko.com

jdk7 中Collections.sort 异常

标签:style   class   blog   code   java   http   

原文地址:http://blog.csdn.net/fover717/article/details/33730343

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