java —— 实体类中按时间排序

java - 实体类中按时间排序

每篇一句励志:缔造成功的背后,一定要有一颗坚忍的心。

  1. 首先实体类实现以下Comparable接口;
  2. 重写以下compareTo方法;
  3. 生成一个有参构造,以便于业务代码传入参数(看自己实际情况写);
  4. 此时只要在需要排序的代码中加入Collections.sort(list) 即可;
public class PublicWelfareDTO implements Comparable<PublicWelfareDTO>{

    @JsonFormat(pattern="yyyy-MM-dd")
    private Date time;

    private String nickName;

    private String imgUrl;

    private String detail;

    public PublicWelfareDTO(Date time, String nickName,String imgUrl, String detail) {
        super();
        this.time = time;
        this.nickName = nickName;
        this.imgUrl = imgUrl;
        this.detail = detail;
    }
    
    @Override
    public int compareTo(PublicWelfareDTO o) {
        Date dt1 = o.getTime();
        //以下代码决定按日期降序排序,若将return“-1”与“1”互换,即可实现升序。
        //getTime 方法返回一个整数值,这个整数代表了从 1970 年 1 月 1 日开始计算到 Date 对象中的时间之间的毫秒数。
        if (dt1.getTime() > this.time.getTime()) {
            return 1;
        } else if (dt1.getTime() < this.time.getTime()) {
            return -1;
        } else {
            return 0;
        }
    }
}
List<PublicWelfareDTO> list = new ArrayList<>();
Collections.sort(list);

欢迎大佬们指出不足或者大佬们还有什么好的方法在评论区写出来我们一起探讨。
排序的思路就是这样的,跟你们需求一样拿过去直接用,不一样就根据自己的需求改改。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值