名前に基づいて_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
_
あなたのアプローチは正しかった。次の例のように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
Collections.sort(actorsList, new Comparator<Actors>() {
@Override
public int compare(Actors lhs, Actors rhs) {
return lhs.getName().compareTo(rhs.getName());
}
});
Collections.sort(modelList, (lhs, rhs) -> lhs.getName().compareTo(rhs.getName()));