这里采用的方法是:将要排序的类实现Comparable接口。具体如下:
① 假设有个rule类,要按照sort字段排序。首先该类要实现Comparable接口,并实现它的compareTo()方法。
/**
* @ Author:EvanChen
* @ Date:2018/9/17 17:02
* @ Description:规则实体类
*/
public class Rule implements Comparable<Rule>{
/**
* @ Description:规则id
* @ Version :1.0.0
*/
private Integer id;
/**
* @ Description:规则名称
* @ Version :1.0.0
*/
private String name;
/**
* @ Description:规则展示排序
* @ Version :1.0.0
*/
private Integer sort;
public Integer getId() {
return id;
}
public Rule setId(Integer id) {
this.id = id;
return this;
}
public String getName() {
return name;
}
public Rule setName(String name) {
this.name = name;
return this;
}
public Integer getSort() {
return sort;
}
public Rule setSort(Integer sort) {
this.sort = sort;
return this;
}
@Override
public int compareTo(Rule o) {
return this.getSort().compareTo(o.getSort());
}
}
②使用时,只需调用 Collections.sort()方法即可,这里的rules是List<Rule>类型的。
Collections.sort(rules);
默认是升序,如需降序,则需要改一下上面的方法即可。
Collections.sort(rules, new Comparator<Rule>() {
public int compare(Rule o1, Rule o2) {
return o2.getSort() - o1.getSort();
}
);