Exception in thread "main" java.lang.IllegalArgumentException: Comparison method violates its gener

在Java 1.7环境下遇到'Exception in thread "main" java.lang.IllegalArgumentException'的问题,该问题是由于Collections.sort()的一个bug引起的。通过在程序开始时设置System.setProperty("java.util.Arrays.useLegacyMergeSort", "true"),可以解决此问题。参考相关博客和网页以了解更多详情。" 123835794,7243084,大B公司AI实践困境:To B AI平台1.0模式的挑战与未来,"['人工智能', '大数据', '机器学习', '编程语言', 'Java']

Java的jdk版本1.7出现了如下的问题:

Exception in thread "main" java.lang.IllegalArgumentException: Comparison method 
violates its general contract! 
        at java.util.TimSort.mergeHi(Unknown Source) 
        at java.util.TimSort.mergeAt(Unknown Source) 
        at java.util.TimSort.mergeForceCollapse(Unknown Source) 
        at java.util.TimSort.sort(Unknown Source) 
        at java.util.TimSort.sort(Unknown Source) 
        at java.util.Arrays.sort(Unknown Source) 

        at java.util.Collections.sort(Unknown Source) 


这是1.7的一个bug。解决方法如下:

在程序开始处添加:

System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");

解决了问题。

参考相关网页:

(1) http://hi.baidu.com/ac_liang/item/460f740ade3516314ac4a368

(2) http://www.cnblogs.com/growup/archive/2012/06/06/2538245.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值