마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

어레이 리스트 정렬 오류

0 추천
  addinfo = new Appinfo();
                        addinfo.mIcon = app.loadIcon(pm);
                        addinfo.mAppName = app.loadLabel(pm).toString();
                        addinfo.mAppPackge = app.packageName;
                        addinfo.mProcess = meminfo.get("system");
                        data.add(new ListData(addinfo));


  Collections.sort(data, Appinfo.NUM_COMPARATOR);


  public static final Comparator<Appinfo> NUM_COMPARATOR = new Comparator<Appinfo>() {
        private final Collator sCollator = Collator.getInstance();
        @Override
        public int compare(Appinfo object1, Appinfo object2) {
            return sCollator.compare(object1.mProcess, object2.mProcess);
        }
    };

설명을 해드리자면 리스트를 만들어서 프로세스 크기별로 정렬을 하려알아보니 Collection.sort 를 쓰더군요 그래서 addinfo (data.add) 로 리스트를 만들고 Appinfo 에 있는 NUM_COMPARATOR 을 이용해서 정렬을 하려하니 빨간줄 그어지면서

sort (List<ListData>, java.util.Comparator<? super kr.co.test.test1.activity.main.Main.ListData>) in Collections cannot be applied to (ArrayList<ListData> , java.util.Comparator <kr.co.test.test1.activity.optm.Appinfo>)

라 뜨네요... 초보인지라 왜 어찌 해결해야할지 모르겟습니다..

익명사용자 님이 2015년 4월 2일 질문

1개의 답변

0 추천
코드 구현은 AppInfo 끼리 비교하게 작성하셨는데

정작 정렬은 ArrayList<ListData>를 하려고 하셨네요 뭔가 이상하지 않나요?

ArrayList<AppInfo> 로 만들어진 컬렉션을 만들어서 Collections.sort를 하시거나

아니면 ListData를 비교할 수 있도록 Comparator를 작성하시거나 하시면 될 듯 싶네요
Gradler (109,780 포인트) 님이 2015년 4월 2일 답변
...