データベースからデータを取得するために休止状態を使用しています。私の UI では、表に異なる列が表示されます。列に並べ替え機能を実装したいと考えています。
アイコンをトリガーすると、名前は AZ の次に ZA のようにソートされます。
これで私を助けてください。
a を使用してデータを並べ替えることができますComparator
(DB にアクセスしたくない場合)。UI に表示されているCategory
インスタンス ( )のリストがあるとします。categoryList
class Category{
private Long id;
private String categoryName;
private String otherProperty;
}
Comparator
インターフェイスを使用してカスタム戦略を定義Category
し、に存在するインスタンスをソートできるようになりましたCategory list
。
class StartegyOne implements Comparator<Category> {
@Override
public int compare(Category c1, Categoryc2) {
return c1.getCategoryName().compareTo(c2.getCategoryName());
}
}
これStrategyOne
により、辞書式の順序に基づいてカテゴリが並べ替えられcategoryNames
ます。これは次の方法で実現できますCollections.sort
。
Collections.sort(categoryList, AN_INSTANCE_OF_StrategyOne);
このStrategy
クラスのインスタンスを private static final フィールドに格納して再利用することを検討できます。
/*This is the class that receives the sort action*/
class SortActionHandler{
private static final Comparator<Category> CATEGORY_ORDER =
new Comparator<Category>() {
public int compare(Category c1, Categoryc2) {
return c1.getCategoryName().compareTo(c2.getCategoryName());
}
};
//call this method to sort your list according to category names
private void sortList(List<Category> categoryList){
Collections.sort(categoryList, CATEGORY_ORDER);
}
}