java 实体类属性排序_java实现多个属性排序---按照实体的多种属性值进行排序(ComparableComparator/ComparatorChain)...

一、在项目的开发过程中,获取快递物流信息之后,对于快递路由列表信息进行按照时间进行倒序排序,由此做的一些记录和总结

1 //获取物流信息 ExpressRouteVO实体在后面

2 List routeList =getExpressRouteByNo(entity.getBillNo());3

4 Comparator mycmp1 =ComparableComparator.getInstance();5 //默认为正序,我们这边设置为逆序

6 mycmp1 =ComparatorUtils.reversedComparator(mycmp1);7 ArrayList sortFields = new ArrayList();8 sortFields.add(new BeanComparator("time", mycmp1));9 //创建一个排序链

10 ComparatorChain multiSort = newComparatorChain(sortFields);11 Collections.sort(routeList, multiSort);12 params.put("expressDataList", routeList);

二、以下是在网络找到的一些参考,可以实现多种属性的排序

1 Comparator mycmp1 =ComparableComparator.getInstance ();2 mycmp1 = ComparatorUtils. reversedComparator(mycmp1); //逆序

3

4 Comparator mycmp2 =ComparableComparator.getInstance ();5 mycmp2 = ComparatorUtils. nullHighComparator(mycmp2); //允许null6

7 //声明要排序的对象的属性,并指明所使用的排序规则,如果不指明,则用默认排序

8 ArrayList sortFields = new ArrayList();9 sortFields.add( new BeanComparator("age" , mycmp1)); //主排序(第一排序)

10 sortFields.add( new BeanComparator("grade" , mycmp2)); //次排序(第二排序)11

12 //创建一个排序链

13 ComparatorChain multiSort = newComparatorChain(sortFields);14

15 //开始真正的排序,按照先主,后副的规则

16 Collections.sort (users , multiSort);

三,通过以下ComparableComparator的使用,我们可以比较方便的进行多种属性的排序,这里只是简要做个记录,有时间得对实体排序的方法做更多的了解,对于方法的底层实现做进一步的理解。

import java.io.Serializable;

/**

* 路由节点信息

*/

public class ExpressRouteVO implements Serializable {

private String time;

private String address;

private String remark;

private String opCode;

public String getTime() {

return time;

}

public void setTime(String time) {

this.time = time;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public String getRemark() {

return remark;

}

public void setRemark(String remark) {

this.remark = remark;

}

public String getOpCode() {

return opCode;

}

public void setOpCode(String opCode) {

this.opCode = opCode;

}

}

-------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值