我正在使用休眠从数据库中检索数据。我的 UI 在表格中显示不同的列。我想在列上实现排序功能。
在触发图标时,名称应按 AZ 和 ZA 进行排序。
请帮助我。
您可以使用 a 对数据进行排序Comparator
(假设您不想访问数据库)。假设您的 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
在私有静态最终字段中并重用它:
/*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);
}
}