简单对象排序
Collections.sort(nums); //num为简单数组单个元素的list等
复杂对象排序
1.实体类
public class Salesman implements Comparable<Salesman>{//实现该接口 private int id;// same with userId; private String name;// same with realname; private int businessLevel; private int status; @Override public int compareTo(Salesman salesman) { int i = this.getStatus()-salesman.getStatus(); return i;//i>=0则该元素排在前面 } @Override public String toString() { return "Salesman{" + "id=" + id + ", name='" + name + '\'' + ", businessLevel=" + businessLevel + ", status=" + status + '}'; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getBusinessLevel() { return businessLevel; } public void setBusinessLevel(int businessLevel) { this.businessLevel = businessLevel; } }
2.实现方法
List<Salesman> salesmen = new ArrayList<>();//要被排序的集合 for (User user : users) {//赋值 if (StringUtils.isEmpty(nameLike) || user.getRealname().contains(nameLike)) { int businessLevel = getBusinessLevel(user); Salesman salesman = new Salesman(); salesman.setId(user.getId()); salesman.setName(user.getRealname()); salesman.setBusinessLevel(businessLevel); salesman.setStatus(user.getStatus()); salesmen.add(salesman); } } Collections.sort(salesmen);//按statue排序 Collections.reverse(salesmen);//这里要让statue小的在后面,所以需要逆序一下