ArrayList如何对某个对象的日期属性排序?

简介: ArrayList如何对某个对象的日期属性排序?


现实是:2021年10月24日09:52:35,祝大家节日快乐呐!

今天在项目过程中,遇到了个需求,需要对某个对象中的日期部分进行排序,也是解决了好久的一个问题,现在分享出来希望能帮助到大家。

按照开始日期进行从小到大排序

实体类:

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ProjectVO对象", description = "项目表(project)")
public class ProjectVO extends Project  {
  private static final long serialVersionUID = 1L;
  //格式化日期
  //开始时间
  private String kaishiTime;
  //结束时间
  private String jieshuTime;
  //project对象
  private Project project;
  //年月日
  private String riqi;
}

排序的工具类:

package org.springblade.modules.hbv.util;
import org.springblade.modules.hbv.vo.ProgrammeVO;
import org.springblade.modules.hbv.vo.ProjectVO;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date;
/**
 * @author: muxiongxiong
 * @date: 2021年10月23日 下午 1:39
 * 公众号:雄雄的小课堂
 * 博客:https://blog.csdn.net/qq_34137397
 * 个人站:http://www.穆雄雄.com
 * 个人站:http://www.muxiongxiong.cn
 * @Description: 类的描述
 */
public class SortByDate implements Comparator {
  public int compare(Object o1, Object o2) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");
    Date begin = null;
    Date end = null;
    try {
       begin =sdf.parse(((ProjectVO)o1).getKaishiTime());
       end = sdf.parse(((ProjectVO)o2).getKaishiTime());
    } catch (ParseException e) {
      e.printStackTrace();
    }
    if (begin.after(end)) {
      return 1;
    } else {
      return -1;
    }
  }
}

调用排序工具类的部分代码展示:

//封装日期,让看好点儿
    SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");
    for(String i : projectId){
      //先对日期进行截取
      ProjectVO projectVO = new ProjectVO();
      Project project = projectService.getById(Integer.parseInt(i));
      projectVO.setProject(project);
      Date begin = project.getBeginTime();
      projectVO.setKaishiTime(format.format(begin));
      Date end = project.getEndTime();
      projectVO.setJieshuTime(format.format(end));
      //需要重新封装在VO里面(一个方案对应多个项目)
      projectList.add(projectVO);
    }
    SortByDate sortByDate = new SortByDate();
    //调用排序日期的方法
    Collections.sort(projectList, sortByDate);

最后的projectList就是已经排序好的集合啦。

相关文章
|
8月前
|
前端开发 Java 测试技术
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
把List<对象>转变<String,List<对象>>形式,k为判断的值,v为k重复的数据。
55 0
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
206 5
|
8月前
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
135 0
lamada List对象属性值转数组array
lamada List对象属性值转数组array
123 0
|
Java
如何判断List 集合和Map 集合是否为空
如何判断List 集合和Map 集合是否为空
178 0
|
Java
java8 List根据对象中属性去重-多属性去重-去除重复字符串
java8 List根据对象中属性去重-多属性去重-去除重复字符串
1232 0
|
数据库
List中对象去重和List 根据对象的属性去重
有这么一个需求,需要将从数据库查出来的数据进行去重。
133 0
根据数组中对象的属性值进行排序
根据数组中对象的属性值进行排序
90 0
List中根据某个实体的属性去重或者排序
List中根据某个实体的属性去重或者排序
242 0
List列表按照对象进行排序
List列表按照对象进行排序
138 0