自定义对象根据属性排序
- 定义一个对象类
@Data public class ZmnUserPointRank implements Serializable { /** * 主键 */ @Id @Column(name = "`id`") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; /** * 排名 */ @Column(name = "`rank`") private Byte rank; /** * 用户ID */ @Column(name = "`user_id`") private Integer userId; /** * 总积分 */ @Column(name = "`point_total`") private Integer pointTotal;
- 定义比较器,比较器一定要去实现java.util.Comparator接口
public class UserRankComparator implements Comparator<ZmnUserPointRank> { @Override public int compare(ZmnUserPointRank o1, ZmnUserPointRank o2) { //使用需要排序的字段比较排序,这个为大到小,反过来为小到大 return o2.getPointTotal() - o1.getPointTotal(); } }
- 定义好排序的字段,然后传入需要排序的自定义对象数组
private void sortRank(ZmnUserPointRank[] ranks){ Arrays.sort(ranks,new UserRankComparator()); }