web-dev-qa-db-ja.com

ArrayList <Object>を昇順で並べ替える方法android

名前に基づいて_ArrayList<Object>_(カスタムオブジェクト)を昇順でソートする必要があります。その目的のために、私はコンパレータの方法を次のように使用しています

My ArrayList:

ArrayList<Model> modelList = new ArrayList<Model>();

使用しているコード:

_   Comparator<Model> comparator = new Comparator<Model>() {
            @Override
            public int compare(CarsModel lhs, CarsModel rhs) {

                String  left = lhs.getName();
                String right = rhs.getName();

                return left.compareTo(right);

            }
        };

   ArrayList<Model> sortedModel = Collections.sort(modelList,comparator);

//While I try to fetch the sorted ArrayList, I am getting error message 
_

私は完全に立ち往生しており、_ArrayList<Object>_のソートされたリストを取得するためにさらに先に進む方法を本当に知りません。これで私を助けてください。どんな助けや解決策も私に役立つでしょう。参考までに私の正確なシナリオを掲載します。前もって感謝します。

例:

_ArrayList<Model> modelList = new ArrayList<Model>();
modelList.add(new Model("chandru"));
modelList.add(new Model("mani"));
modelList.add(new Model("vivek"));
modelList.add(new Model("david"));
_

通常のリスト:

_for(Model mod : modelList){
  Log.i("names", mod.getName());
}
_

出力:

_chandru
mani
vivek
david
_

ソート後の私の要件は次のようになります

_for(Model mod : modelList){
  Log.i("names", mod.getName());
}
_

出力:

_chandru
david
mani
vivek
_
6
Chandru

あなたのアプローチは正しかった。次の例のようにComparator内部を作成します(または、代わりに新しいクラスを作成できます)。

ArrayList<Model> modelList = new ArrayList<>();
modelList.add(new Model("chandru"));
modelList.add(new Model("mani"));
modelList.add(new Model("vivek"));
modelList.add(new Model("david"));

Collections.sort(modelList, new Comparator<Model>() {
    @Override
    public int compare(Model lhs, Model rhs) {
        return lhs.getName().compareTo(rhs.getName());
    }
});

出力

chandru
david
mani
vivek
41
Sahar Avr
 Collections.sort(actorsList, new Comparator<Actors>() {
      @Override
      public int compare(Actors lhs, Actors rhs) {
       return lhs.getName().compareTo(rhs.getName());
     }
    });
4
poonam sharma
Collections.sort(modelList, (lhs, rhs) -> lhs.getName().compareTo(rhs.getName()));
0