Comparison method violates its general contract 关于jdk自带算法问题
昨晚上线,线上报了一个问题,用的jdk8,用的collections.sort方法,
public static void main(String[] args) {
List<Integer> results = new ArrayList<>(); for(int i =0;i<100000;i++){
results.add((int)(Math.random()*1000));
}
System.out.println(JsonUtil.toString(results));
System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");
Collections.sort(results, new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2) {
if(Integer.compare(o1, o2)<=0){
return 1;
}
return -1;
// int result = Integer.compare(o1, o2);
// if(result<0){
// return 1;
// } else if (result==0) {
// return 0;
// } else {
// return -1;
// }
}
});
System.out.println(JsonUtil.toString(results));
}
注明:Jsonutil只是打印内容用的
这里面根据网上查询的
http://blog.csdn.net/fanzitao/article/details/8040201
使用
System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");这句话并不生效,最后还是报错,不过后面解决方案就是注释的那句话,必须返回0 即可,这种jdk的报错真心无奈-.-
Comparison method violates its general contract 关于jdk自带算法问题的更多相关文章
- 解决“Comparison method violates its general contract!”
The ONE跑MaxProp.Prophet可能(取决于你JDK的版本)会报“java.lang.IllegalArgumentException: Comparison method violat ...
- 排序遇到问题 JDK7的Comparison method violates its general contract
图解JDK7的Comparison method violates its general contract异常 楼主分析的很详细,能力有限,我看得迷迷糊糊的,不过大致知道这个错误的起因了.学习了,谢 ...
- 解决 Comparison method violates its general contract!
问题:Comparison method violates its general contract!报错 Collections.sort(list, new Comparator<Integ ...
- java-collections.sort异常Comparison method violates its general contract!
转载:http://www.tuicool.com/articles/MZreyuv 异常信息 java.lang.IllegalArgumentException: Comparison metho ...
- JDK7的Comparison method violates its general contract异常
1.摘要 前一阵遇到了一个使用Collections.sort()时报异常的问题,跟小伙伴@zhuidawugui 一起排查了一下,发现问题的原因是JDK7的排序实现改为了TimSort,之后我们又进 ...
- Comparison method violates its general contract
生产环境出现的错误排查,错误log如下 java.lang.IllegalArgumentException: Comparison method violates its general contr ...
- Comparison method violates its general contract 解决
java.lang.IllegalArgumentException: Comparison method violates its general contract! 原因 JDK7中的Collec ...
- 关于jdk7中 使用Collections的排序方法时报Comparison method violates its general contract!异常
参考: Comparison method violates its general contract Comparison method violates its general contract! ...
- [ Error 分析] Comparison method violates its general contract!
public static void main(String[] args) { List<Long> ret = new ArrayList<>(); int n = 103 ...
随机推荐
- VS.Net 2015 Update3 学习(2) jquery-form, jquery-validation,jquery-validation-unobtrusive一起用
我觉DataAnnotations非常酷的一个功能.但是教程中的@ajaxform的却不怎么优雅,需要全局的onSucces等函数.因此我使用jquery-form做ajax提交. function ...
- iOS - QRCode 二维码
1.QRCode 在 iOS7 以前,在 iOS 中实现二维码和条形码扫描,我们所知的有,两大开源组件 ZBar 与 ZXing. 这两大组件我们都有用过,这里总结下各自的缺点: 1.ZBar 在扫描 ...
- springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传
总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...
- 无法删除对象 '产品',因为该对象正由一个 FOREIGN KEY 约束引用。
在删除northwindcs表时,发生报错,消息 3726,级别 16,状态 1,第 2 行,无法删除对象 '产品',因为该对象正由一个 FOREIGN KEY 约束引用.此时判断是因为有其他表的外键 ...
- 开机报这个错误,然后 adobe软件无法使用
开机报这个错误,然后 adobe软件无法使用 按照此方法测试,无效,在原基础如下更改 /tmp 是连接文件找到根文件(/private/tmp)删除重新给予权限,重新建立连接恢复正常 使用到的命令 ...
- You Don't Know JS: Scope & Closures(翻译)
Chapter 1: What is Scope? 第一章:什么是作用域 One of the most fundamental paradigms of nearly all programming ...
- Java 中的 request 和response 区别
1.response 属于重定向请求: 其地址栏的URL会改变: 会向服务器发送两次请求: 2. request 属于请求转发: 其地址栏的URL不会改变: 向服务器发送一次请求: 举一个区分它们的简 ...
- abap调vb写的dll实现电子天平的读数(带控件版)
废话不多说,直接上. 鉴于abap调研的dll文件需要在wins注册,自己尝试过delphi和C#感觉不是很好,最后毅然选择了VB来写 因为需要用到MScomm控件,所以对于将要写的dll需要带for ...
- [转]用CSS给SVG <use>的内容添加样式
来源:http://www.w3cplus.com/svg/styling-svg-use-content-css.html?utm_source=tuicool&utm_medium=ref ...
- img标签 加载FTP的图片 C#
好吧,我是菜鸟,这是我今天遇到的问题,什么也不会,得高人指点 1.使用FtpWebRequest下载图片,以流存贮 2.在ashx文件里面直接已流方式(HttpContext.Current.Resp ...