前言
最近在做项目中遇到一个排序问题,对实体类的某个字段进行排序。可以通过实现Comparator
接口进行排序。
方法一
在实体类中实现 Comparator
接口,接口需要实现 compare
方法即可。
public class OptionsEntity implements Comparator {
private String id;
private String questionId;
private String value;
private String usageState;
private String operatorId;
private Date operatTime;
private Integer optionsOrder;
private boolean checked;
省略get/set方法
@Override
public int compare(OptionsEntity option1, OptionsEntity option2) {
return option1.getOptionsOrder() - option2.getOptionsOrder(); // 升序
return option2.getOptionsOrder() - option1.getOptionsOrder(); // 降序
}
}
使用方法
// 排序列表
List<OptionsEntity> optionsList = optionsService.getOptionList();
// 排序
Collections.sort(optionsList, new OptionsEntity());
注意 Collections是java.util包下。
方法二
直接 new 一个 Comparator
接口。
// 排序列表
List<OptionsEntity> optionsList = optionsService.getOptionList();
// 创建对象实现compare方法
Comparator<OptionsEntity> comparator = new Comparator<OptionsEntity>() {
@Override
public int compare(OptionsEntityoption1, OptionsEntityoption2) {
return option1.getOptionsOrder() - option2.getOptionsOrder(); // 升序
return option2.getOptionsOrder() - option1.getOptionsOrder(); // 降序
}
};
// 排序
Collections.sort(optionsList, comparator);