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

java.lang.IllegalArgumentException: Comparison method violates its general contract!    at java.util.TimSort.mergeLo(TimSort.java:743)    at java.util.TimSort.mergeAt(TimSort.java:479)    at java.util.TimSort.mergeCollapse(TimSort.java:406)    at java.util.TimSort.sort(TimSort.java:210)    at java.util.TimSort.sort(TimSort.java:169)    at java.util.Arrays.sort(Arrays.java:2038)    at java.util.Collections.sort(Collections.java:1891)

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

public class MyData{        private String fileName;        public void setfileName(String fileName){        this.fileName=fileName;        }        public String getfileName(){        return this.fileName;        }        }        private void MySort(List<MyData> MyDatas){         Collections.sort(MyDatas, new Comparator<MyData>() {                    @Override                    public int compare(MyData lhs, MyData rhs) { // lhs和rhs 都要用上,不然会出错,本人测试是这样的,具体不知为何 // TODO Auto-generated method stub                        if (lhs == null || rhs == null)                            return 0;                        String path="/mnt/file/";                        // file one                        String name1= lhs.getfileName();                        String filename1 = path + name1;                         File file1 = new File(filename1);                        // file two                        String name2= rhs.getfileName();                        String filename2 = path + name2;                         File file2 = new File(filename2);                                                if (file1.exists() == true && file2.exists() == true) {                            return 0;                        } else {                            if (file1.exists() == true) {                                return 1;                            } else {                                return -1;                            }                        }                    }                });                Collections.reverse(MyDatas);    }

更多相关文章

  1. aes文件读取
  2. 把android assets文件夹内的文件存储到sd卡中
  3. android使用sharedPreferences()方法读写文件操作
  4. 在系统里设置文件默认打开APP
  5. Android实现屏幕截图并保存截图到指定文件
  6. Android 中读取SD卡文件时抛出NullPointerException错误解决办法
  7. Android media媒体库分析之:分类别统计媒体文件大小

随机推荐

  1. Android换肤机制
  2. Android点击事件的四种写法
  3. Android编程: 环境搭建、基本知识
  4. 杂七杂八2
  5. Android去除标题栏及自定义title栏
  6. android资源配置文件
  7. 背景图片显示问题 图片显示错误 android
  8. Cordova 入门AndroidStudio集成
  9. android动画效果处理
  10. ContentProvider-获取系统数据