集合比较器报错java.lang.IllegalArgumentException: Comparison method violates its general contract!
2024-08-29 20:46:30
Collections.sort(listMonthlyUsage, new Comparator<MonthlyUsageDto>() { //按照元素从小到大排序
@Override
public int compare(MonthlyUsageDto o1, MonthlyUsageDto o2) {
if(o1.getCstId() > o2.getCstId()) return 1;
else return -1;
// return o1.getCstId() - o2.getCstId();
}
});
上面代码报错都是因为我们比较器不够严谨,只有返回1和-1,米有返回0。将代码改为下面就正常了:
Collections.sort(listMonthlyUsage, new Comparator<MonthlyUsageDto>() { //按照元素从小到大排序
@Override
public int compare(MonthlyUsageDto o1, MonthlyUsageDto o2) {
if(o1.getCstId() > o2.getCstId()) return 1;
else if (o1.getCstId() == o2.getCstId()) return 0;
else return -1;
// return o1.getCstId() - o2.getCstId();
}
});
最新文章
- web 前端- 表格字段(文件大小)单位格式化算法
- java 线程的终止与线程中断
- js基本数据类型和typeof
- 集成架构:对比 Web API 与面向服务的架构和企业应用程序集成(转)
- Python For Data Analysis -- NumPy
- Android之使用HTTP协议的Get/Post方式向服务器提交数据
- ";奇葩家园“之genymotion工具篇
- ubuntu 中 ssh连接用UTF-8
- [转载+原创]Emgu CV on C# (七) —— Emgu CV on 轮廓检测
- 选择Android还是选择JavaEE?
- Elasticsearch 查询与过滤
- $.parseJSON 将json 对象转换为array
- unity3d Realistic eye shading 真实的眼睛渲染
- big_table练习数据表
- hdu 4499 Cannon(暴力)
- vue2.0自定义指令的使用方法
- js实现刷新
- JS中的位操作在实际项目中的应用
- JS获取键盘事件
- [Postman]捕获HTTP请求(14)