码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2014-09-25 12:00:49      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   color   io   java   ar   文件   数据   

 

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);
    }

 

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

标签:android   style   blog   color   io   java   ar   文件   数据   

原文地址:http://www.cnblogs.com/tianciliangen/p/3992263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!