0

データベースからデータを取得するために休止状態を使用しています。私の UI では、表に異なる列が表示されます。列に並べ替え機能を実装したいと考えています。このアイコンは列に表示する必要があります

アイコンをトリガーすると、名前は AZ の次に ZA のようにソートされます。

これで私を助けてください。

4

1 に答える 1

1

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);
}
}
于 2013-09-11T08:05:45.447 に答える