java - 实体类中按时间排序
每篇一句励志:缔造成功的背后,一定要有一颗坚忍的心。
- 首先实体类实现以下Comparable接口;
- 重写以下compareTo方法;
- 生成一个有参构造,以便于业务代码传入参数(看自己实际情况写);
- 此时只要在需要排序的代码中加入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);
欢迎大佬们指出不足或者大佬们还有什么好的方法在评论区写出来我们一起探讨。
排序的思路就是这样的,跟你们需求一样拿过去直接用,不一样就根据自己的需求改改。