Comparison method violates its general contract!

今天在刷LeetCode题目的时候,问题使用HashMap按照value排序来解决,自定义比较器,但是报错:java.lang.IllegalArgumentException: Comparison method violates its general contract! 原比较器的写法:

Comparator<Map.Entry<Integer, Integer>> byMapValues = new Comparator<Map.Entry<Integer, Integer>>() {
                @Override
                public int compare(Map.Entry<Integer, Integer> left, Map.Entry<Integer, Integer> right) {
                    if (left.getValue()<right.getValue()) return 1;
                    else return -1;
                }
            };

之后正确的写法:

Comparator<Map.Entry<Integer, Integer>> byMapValues = new Comparator<Map.Entry<Integer, Integer>>() {
                @Override
                public int compare(Map.Entry<Integer, Integer> left, Map.Entry<Integer, Integer> right) {
                       return right.getValue().compareTo(left.getValue());
                }
            };

大概的原因是JDK1.7版本的问题,替换了java.util.Arrays.sort排序算法的实现。具体可以参考这里

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习入门

挑战程序竞赛系列(75):4.3强连通分量分解(2)

挑战程序竞赛系列(75):4.3强连通分量分解(2) 传送门:POJ 3180: The Cow Prom 题意: 求结点大于等于2的强连通分量个数。 直接上...

1886
来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1656
来自专栏JAVA技术站

JAVA流之FileInputStream,FileOutputStream

FileOutputStream,意为文件输出流,是用于将数据写入File或 FileDescriptor的输出流

633
来自专栏菩提树下的杨过

java学习:文件读写

java中有好几种读写文件的方法,但是个人觉得最简单的还是FileInputStream、FileOutputStream类,示例代码: package jmy...

1757
来自专栏GIS讲堂

geotools编写shp转sql,实现shp数据入Oracle Spatial库

用到Oracle Spatial就很难避免shp文件的入库问题,虽然有shp2sdo工具,但是用起来不是很习惯,所以,本文讲述如何结合geotools实现shp...

854
来自专栏绿巨人专栏

TypeScript: Week Reflection

1243
来自专栏浪淘沙

Java加载项目中properties配置文件的三种方式

804
来自专栏机器学习入门

POJ 刷题系列:1573. Robot Motion

题意: 一张地图包含N,S,W,E的指令,从指定起点[1, p]出发,是否有一条路径能够走到地图边缘,有则输出路径数,无说明走入了死循环,输出走入循环前和循环...

19410
来自专栏机器学习入门

挑战程序竞赛系列(91):3.6凸包(2)

挑战程序竞赛系列(91):3.6凸包(2) 传送门:POJ 1113: Wall 题意参考hankcs: http://www.hankcs.com/pro...

1916
来自专栏码匠的流水账

聊聊storm的GraphiteStormReporter

storm-core-1.2.2-sources.jar!/org/apache/storm/metrics2/reporters/GraphiteStormR...

921

扫码关注云+社区