hashMap根据值排序
来源:互联网 发布:科学革命的结构 知乎 编辑:程序博客网 时间:2024/06/04 00:45
根据值排序:
List<Map.Entry<String, Double>> data = new ArrayList<>(map.entrySet()); Collections.sort(data, new Comparator<Map.Entry<String, Double>>() { public int compare(Map.Entry<String, Double> o1, Map.Entry<String, Double> o2) { if(o2.getValue()!=null&&o1.getValue()!=null&&o2.getValue().compareTo(o1.getValue())>0){ return 1; }else if(o2.getValue()!=null&&o1.getValue()!=null&&o2.getValue().compareTo(o1.getValue())==0){ return 0; }else { return -1; } } });
我在测试时,遇到了java.lang.IllegalArgumentException: Comparison method violates its general contract!
出现这个问题的原因是:
1. 需要判断比对的对象是否为空(不判断也没发现有什么问题)
不能返回正整数、负整数、0, 而应该返回1 , -1, 0
必须保证返回值会return 这3种值
必须保证满足对等3定律
我出现这个问题就是第二步的问题,当时少写了一个比较判断,没有考虑两个值相等的情况。
加上,下面一句话就可以执行成功。
else if(o2.getValue()!=null&&o1.getValue()!=null&&o2.getValue().compareTo(o1.getValue())==0){ return 0; }
阅读全文
0 0
- hashMap根据值排序
- JAVA HashMap、TreeMap根据value值排序
- JAVA HashMap、TreeMap根据value值排序
- HashMap根据Value值的大小排序
- HashMap 根据key排序
- HashMap根据value排序
- hashmap根据value排序
- HashMap如何根据Value排序?
- HashMap根据key值对集合进行排序
- 对Java的HashMap根据Value排序
- Java 根据 HashMap 的 value 进行排序
- HashMap中的对象根据成员进行自定义排序
- HashMap中的对象根据成员进行自定义排序
- 分别根据key和value对HashMap进行排序
- HashMap加入数据后,会自动根据首字母排序
- Map根据值排序
- Map根据值排序
- java HashMap 按值排序
- 二级指针笔记
- 【Unity】5.6版本无法新建工程
- 谷歌55.0版本之后的乱码的问题
- Java 类的成员
- tomcat的role说明
- hashMap根据值排序
- keil4程序的某行断点设置问题,双击程序所在行没反应
- CSR8670通过BLE拨打指定电话的实现
- Java虚拟机工作原理详解
- webstorm-主题和配色
- webService调用几种方法
- beetl使用过程中遇到的问题
- TreeSet的实现方法,between and 和substring;
- js 判断对象数组中是否包含某个属性的值和对象转化成数组