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集合时间排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Excel数据导入数据库的方法

    Java Excel数据导入数据库的方法

    这篇文章主要为大家详细介绍了Java Excel数据导入数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 深入了解Java语言中的并发性选项有何不同

    深入了解Java语言中的并发性选项有何不同

    这篇文章主要介绍了深入了解Java语言中的并发性选项有何不同,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • Mac下设置Java默认版本的方法

    Mac下设置Java默认版本的方法

    今天工作的时候发现了一个错误,提示java版本太低,无法启动!想起自己装过高版本的Java,但是却没有默认启动,从网上找了一些资料,整理下现在分享给大家,有需要的可以参考借鉴。
    2016-10-10
  • SpringMVC中Controller层获取前端请求参数的方式汇总

    SpringMVC中Controller层获取前端请求参数的方式汇总

    这篇文章主要介绍了SpringMVC中Controller层获取前端请求参数的几种方式,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Java多线程并发的指令重排序问题及volatile写屏障原理详解

    Java多线程并发的指令重排序问题及volatile写屏障原理详解

    这篇文章主要介绍了Java多线程并发的指令重排序问题及volatile写屏障原理详解,指令重排序是编译器或处理器为了提高性能而对指令执行顺序进行重新排列的优化技术,需要的朋友可以参考下
    2024-01-01
  • 使用JAVA实现http通信详解

    使用JAVA实现http通信详解

    本文给大家汇总介绍了几种java实现http通讯的方法,非常的简单实用,有需要的小伙伴可以参考下。
    2015-08-08
  • java 获取子串速率比较分析

    java 获取子串速率比较分析

    这篇文章主要为大家介绍了java 获取子串速率比较分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Java SpringBoot实现文件上传功能的示例代码

    Java SpringBoot实现文件上传功能的示例代码

    这篇文章主要介绍了如何利用Java SpringBoot实现文件上传功能,文中的示例代码讲解详细,对我们学习有一定帮助,需要的可以参考一下
    2022-03-03
  • Springmvc ResponseBody响应json数据实现过程

    Springmvc ResponseBody响应json数据实现过程

    这篇文章主要介绍了Springmvc ResponseBody响应json数据实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java实现的properties文件动态修改并自动保存工具类

    Java实现的properties文件动态修改并自动保存工具类

    这篇文章主要介绍了Java实现的properties文件动态修改并自动保存工具类,可实现针对properties配置文件的相关修改与保存功能,需要的朋友可以参考下
    2017-11-11

最新评论