list对象集合按照对象的某个值排序

list对象集合按照对象的某个值排序

对象需要继承 Comparable

@Data
public class TeamPerformance implements  Comparable<TeamPerformance>,Serializable{
    private static final long serialVersionUID = -6728798297301322140L;
    /**
     * 战队id
     */
    private Integer tId;
    /**
     * 战队总业绩
     */
    private BigDecimal tMoney;


    /**
     * 战队总业绩
     */
    private int tGold;

    /**
     * 战队名字
     */
    private String tName;

    /**
     * 按照tMoney排序 如果tMoney一样 按照id排序
     * @param o
     * @return
     * -表示从大到小排序 去掉则表示从小到大排序
     */
    @Override
    public int compareTo(TeamPerformance o) {
        // 先比较销售业绩 按照销售业绩降序排列
        int i=-this.getTMoney().compareTo(o.getTMoney());
        // 如果销售业绩相同 按照金币 降序排列
        if(i==0){
            return  -this.getTGold()-o.getTGold();
        }
        // 如果金币和销售业绩相同 按照战队id 排列
        if(i==0&&(this.getTGold()-this.getTGold()==0)){
            return  -this.getTId() - o.getTId();
        }
        return i;
    }
}

排序

	 @Test
    public void testTeamPerformance(){
      List<TeamPerformance> list=new ArrayList<>();
      list.add(new TeamPerformance(2,new BigDecimal(20),"王子"));
      list.add(new TeamPerformance(3,new BigDecimal(30),"王子王"));
      list.add(new TeamPerformance(4,new BigDecimal(40),"王子王子"));
      list.add(new TeamPerformance(1,new BigDecimal(10),"王"));
      list.add(new TeamPerformance(5,new BigDecimal(50),"王子王子王"));
        Collections.sort(list);
        for (TeamPerformance teamPerformance : list) {
                   System.out.println(teamPerformance);
                  }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值