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 ...
随机推荐
- URL编码和解码工具
开发中发现需要进行URL的编解码,每次百度出来的还带广告而且比较慢,写了一个本地的工具,比较简单,希望对大家有帮助. <!DOCTYPE html PUBLIC "-//W3C//DT ...
- 深入学习 celery
一.amqp交换 参考链接: http://www.cnblogs.com/ajianbeyourself/p/4950758.html
- 关于C语言结构体,指针,声明的详细讲解。——Arvin
关于结构体的详细分析 只定义结构体 struct Student { int age; char* name; char sex;//结构体成员 };//(不要忘记分号) Student是结构体的名字 ...
- SPSS数据分析—二分类Logistic回归模型
对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...
- CSS3--transform
transform:向元素应用2D或3D转换,该属性允许我们对属性旋转,缩放,移动,或倾斜. transfrom:none:定义不进行转换 transfrom:matrix(n,n,n,n,n,n); ...
- python——有一种线程池叫做自己写的线程池
这周的作业是写一个线程池,python的线程一直被称为鸡肋,所以它也没有亲生的线程池,但是竟然被我发现了野生的线程池,简直不能更幸运~~~于是,我开始啃源码,实在是虐心,在啃源码的过程中,我简略的了解 ...
- cssReset - css初始化
/*cssReset.css文件内容*/@charset "utf-8"/*整个页面的文字和背景色*/html{color:#000;background:#FFF;}/*设置外边 ...
- .NET 框架程序使用 Win32 API
.NET 框架程序可以通过静态 DLL 入口点的方式来访问本机代码库.DllImport 属性用于指定包含外部方法的实现的dll 位置. DllImport 属性定义如下: na ...
- 将MongoDB设为Windows服务
转自“简时空”:<将MongoDB设为Windows服务> 1.前言 MongoDB 安装.配置完后,必须先启动它,然后才能使用它.通常有3中方式来启动数据库实例:① 通过命令行方式:② ...
- (转)JavaScript中的运算符优先级
JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低的优先级列出J ...