Java 将list集合数据按照时间字段排序的方法

 更新时间:2023年03月13日 10:07:58   作者:小目标青年  
这篇文章主要介绍了Java 将list集合数据按照时间字段排序,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

示例:

    public  static List<Product> getProductTestList(){
        List<Product> productList=new ArrayList<>();
        productList.add(new Product().setName("儿童护具").setCreateDate("2023-02-01"));
        productList.add(new Product().setName("青年护具").setCreateDate("2023-01-01"));
        productList.add(new Product().setName("老人护具").setCreateDate("2023-01-02"));
        productList.add(new Product().setName("动物护具").setCreateDate("2023-02-02"));
      return  productList;
    }

要求:

按照创建时间 createDate 字段排序 

方案①: 

使用list的sort方法

.sort(Comparator.comparing(Product::getCreateDate));

代码示例:

    public  static List<Product> getProductTestList(){
        List<Product> productList=new ArrayList<>();
        productList.add(new Product().setName("儿童护具").setCreateDate("2023-02-01"));
        productList.add(new Product().setName("青年护具").setCreateDate("2023-01-01"));
        productList.add(new Product().setName("老人护具").setCreateDate("2023-01-02"));
        productList.add(new Product().setName("动物护具").setCreateDate("2023-02-02"));
      return  productList;
    }
 
    public static void main(String[] args) {
        List<Product> productTestList = getProductTestList();
        productTestList.sort(Comparator.comparing(Product::getCreateDate));
        System.out.println(productTestList);
    }

效果:

如果需要倒序,则加上 reversed 在 .comparing(Product::getCreateDate) .reversed()

方案②:

使用 Collections的sort 

Collections.sort(productTestList, new Comparator<Product>() {}

 代码示例:

    public static void main(String[] args) {
        List<Product> productTestList = getProductTestList();
 
        Collections.sort(productTestList, new Comparator<Product>() {
            @Override
            public int compare(Product o1, Product o2) {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                try {
                    Date dt1 = format.parse(o1.getCreateDate());
                    Date dt2 = format.parse(o2.getCreateDate());
                    if (dt1.getTime() > dt2.getTime()) {
                        return 1;
                    } else {
                        return -1;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return 0;
            }
        });
        System.out.println(productTestList);
    }

效果:

如果需要把顺序反过来,则改变 1 和 -1 的返回值 :

效果: 

方案③:

使用stream的sorted

.stream().sorted(Comparator.comparing(Product::getCreateDate)

代码示例:

    public  static List<Product> getProductTestList(){
        List<Product> productList=new ArrayList<>();
        productList.add(new Product().setName("儿童护具").setCreateDate("2023-02-01"));
        productList.add(new Product().setName("青年护具").setCreateDate("2023-01-01"));
        productList.add(new Product().setName("老人护具").setCreateDate("2023-01-02"));
        productList.add(new Product().setName("动物护具").setCreateDate("2023-02-02"));
      return  productList;
    }
 
    public static void main(String[] args) {
 
        List<Product> productTestList2 = getProductTestList();
        List<Product> sortList = productTestList2.stream()
                .sorted(Comparator.comparing(Product::getCreateDate))
                .collect(Collectors.toList());
        System.out.println(sortList);
        
    }

效果:

如果需要倒序则:

在compring()后面加上 reversed()

到此这篇关于Java 将list集合数据按照时间字段排序的文章就介绍到这了,更多相关java list集合时间排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解JVM的分代模型

    详解JVM的分代模型

    这篇文章主要介绍了JVM的分代模型的相关资料,帮助大家更好的理解和学习Java虚拟机相关知识,感兴趣的朋友可以了解下
    2020-10-10
  • java利用SMB读取远程文件的方法

    java利用SMB读取远程文件的方法

    这篇文章主要为大家详细介绍了java利用SMB读取远程文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • SpringBoot多模块打包部署Docker的项目实战

    SpringBoot多模块打包部署Docker的项目实战

    本文通过介绍最常见的Maven管理的Spring Boot项目多模块打包部署Docker来介绍一下项目部署过程中操作流程和几个需要注意的点,具有一定的参加价值,感兴趣的可以了解一下
    2023-08-08
  • 基于Java向zip压缩包追加文件

    基于Java向zip压缩包追加文件

    这篇文章主要介绍了基于Java向zip压缩包追加文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • SpringBoot使用SOFA-Lookout监控的方法

    SpringBoot使用SOFA-Lookout监控的方法

    本文介绍SpringBoot使用蚂蚁金服SOFA-Lookout配合Prometheus进行监控,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Java实现Map集合二级联动示例

    Java实现Map集合二级联动示例

    Java实现Map集合二级联动示例,需要的朋友可以参考下
    2014-03-03
  • Java this关键字的使用案例详解

    Java this关键字的使用案例详解

    这篇文章主要为大家介绍了Java this关键字的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Java实现用位运算维护状态码

    Java实现用位运算维护状态码

    位运算是一种非常高效的运算方式,在算法考察中比较常见,那么业务代码中我们如何使用位运算呢,感兴趣的小伙伴快跟随小编一起学习一下吧
    2024-03-03
  • Java实体类之间的相互转换方式

    Java实体类之间的相互转换方式

    这篇文章主要介绍了Java实体类之间的相互转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Java创建线程及配合使用Lambda方式

    Java创建线程及配合使用Lambda方式

    这篇文章主要介绍了Java创建线程及配合使用Lambda方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08

最新评论