android  java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题

  1. java.lang.IllegalArgumentException: Comparison method violates its general contract!
  2. at java.util.TimSort.mergeLo(TimSort.java:)
  3. at java.util.TimSort.mergeAt(TimSort.java:)
  4. at java.util.TimSort.mergeCollapse(TimSort.java:)
  5. at java.util.TimSort.sort(TimSort.java:)
  6. at java.util.TimSort.sort(TimSort.java:)
  7. at java.util.Arrays.sort(Arrays.java:)
  8. at java.util.Collections.sort(Collections.java:)

需求排序:数据列表中如果fileName的文件存在的话,放到列表的最上面

  1. public class MyData{
  2.  
  3. private String fileName;
  4.  
  5. public void setfileName(String fileName){
  6. this.fileName=fileName;
  7. }
  8.  
  9. public String getfileName(){
  10. return this.fileName;
  11. }
  12.  
  13. }
  14.  
  15. private void MySort(List<MyData> MyDatas){
  16.  
  17. Collections.sort(MyDatas, new Comparator<MyData>() {
  18. @Override
  19. public int compare(MyData lhs, MyData rhs) { // lhs和rhs 都要用上,不然会出错,本人测试是这样的,具体不知为何
  20. // TODO Auto-generated method stub
  21. if (lhs == null || rhs == null)
  22. return ;
  23. String path="/mnt/file/";
  24. // file one
  25. String name1= lhs.getfileName();
  26. String filename1 = path + name1;
  27. File file1 = new File(filename1);
  28.  
  29. // file two
  30. String name2= rhs.getfileName();
  31. String filename2 = path + name2;
  32. File file2 = new File(filename2);
  33.  
  34. if (file1.exists() == true && file2.exists() == true) {
  35. return ;
  36. } else {
  37. if (file1.exists() == true) {
  38. return ;
  39. } else {
  40. return -;
  41. }
  42. }
  43. }
  44. });
  45. Collections.reverse(MyDatas);
  46. }

android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题的更多相关文章

  1. Java 异常解决之java.lang.IllegalArgumentException: Comparison method violates its general contract!

    Java 异常解决 在你的代码前加一句 System.setProperty("java.util.Arrays.useLegacyMergeSort", "true&q ...

  2. java.lang.IllegalArgumentException: Comparison method violates its general contract!

    这个错误就是写比较器的时候少写了返回值的情况: 比如: Collections.sort(list, new Ordering<QtmSysUserListDto>() { @Overri ...

  3. 集合比较器报错java.lang.IllegalArgumentException: Comparison method violates its general contract!

    Collections.sort(listMonthlyUsage, new Comparator<MonthlyUsageDto>() { //按照元素从小到大排序 @Override ...

  4. java-collections.sort异常Comparison method violates its general contract!

    转载:http://www.tuicool.com/articles/MZreyuv 异常信息 java.lang.IllegalArgumentException: Comparison metho ...

  5. JDK7的Comparison method violates its general contract异常

    1.摘要 前一阵遇到了一个使用Collections.sort()时报异常的问题,跟小伙伴@zhuidawugui 一起排查了一下,发现问题的原因是JDK7的排序实现改为了TimSort,之后我们又进 ...

  6. Comparison method violates its general contract

    生产环境出现的错误排查,错误log如下 java.lang.IllegalArgumentException: Comparison method violates its general contr ...

  7. 解决“Comparison method violates its general contract!”

    The ONE跑MaxProp.Prophet可能(取决于你JDK的版本)会报“java.lang.IllegalArgumentException: Comparison method violat ...

  8. Comparison method violates its general contract 解决

    java.lang.IllegalArgumentException: Comparison method violates its general contract! 原因 JDK7中的Collec ...

  9. [ Error 分析] Comparison method violates its general contract!

    public static void main(String[] args) { List<Long> ret = new ArrayList<>(); int n = 103 ...

随机推荐

  1. Linux命令——gzip、zcat、bzip2、bzcat、tar

    参考:Linux命令——ar 为什么文件要压缩? 当文件过大时,无论是本地做备份,复制都很麻烦,而且还浪费磁盘空间.如果用网络传输,大文件无疑会浪费大量宝贵带宽.文件压缩技术可以有效解决这个问题,但是 ...

  2. Linux命令——shutdown、halt、poweroff、reboot、cal、date

    shutdown shutdown在关机的时候会通知所有用户 shutdown –r now 现在重启 shutdown now 现在关机 shutdown +5 过5分钟关机 shutdown –c ...

  3. 前端(HTML)+后端(Django)+数据库(MySQL):用户注册及登录演示

    1.创建一个html文件用于简单的网页注册demo <!DOCTYPE html> <html lang="en"> <head> <me ...

  4. 解决pynq联网问题

    注:本文只在一种环境下实验!不一定能适用很多环境 一.由于校园网的限制,pynq之间连接路由器存在无法联网的情况! 因此本文主要针对需要登录认证问题提供一种解决方案: 网络环境:校园网络 网络登录:锐 ...

  5. winform中使用缓存

    文章:Winform里面的缓存使用 另外一篇文章:缓存-MemoryCache Class

  6. webpack中环境变量的使用方法

    这节课讲解一下,在webpack打包过程中,怎么去使用一些环境变量. 首先我有一个打包配置的三个文件 "scripts": { "dev-build": &qu ...

  7. Mysql读写分离 及高可用高性能负载均衡实现

    什么是读写分离,说白了就是mysql服务器读的操作和写的操作是分开的,当然这个需要两台服务器,master负责写,slave负责读,当然我们可以使用多个slave,这样我们也实现了简单意义上的高可用和 ...

  8. 【ZZNU-oj-2116:人间不值得】(1亿以内的货币拼音转数值求折扣价原价)--hash+String大法好+字符串处理+超大暴力模拟题

    B : 人间不值得 概览问题列表状态排名编辑 Progress Bar 时间限制:1 Sec 内存限制:256 MiB提交:146 答案正确:12 提交 编辑 题目描述 家缠万贯来几时,我今停杯一问之 ...

  9. Oracle12c-ADG搭建

    实验环境: 角色 IP hostname CDB name db_unique_name pdb name 版本 主 192.168.0.115 Node11 cdb1 cdb_p pdb1 12.2 ...

  10. UEditor设置内容setContent()失效的解决方法

    ueditor常见用法: https://blog.csdn.net/qq_31879707/article/details/54894735#UE.Editor:setContent() UEdit ...