Java 将list集合数据按照时间字段排序
创始人
2024-05-31 03:21:45
0

示例:

    public  static List getProductTestList(){List 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 getProductTestList(){List 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 productTestList = getProductTestList();productTestList.sort(Comparator.comparing(Product::getCreateDate));System.out.println(productTestList);}

效果:

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

方案②:
 

使用 Collections的sort 

Collections.sort(productTestList, new Comparator() {}

 代码示例:

    public static void main(String[] args) {List productTestList = getProductTestList();Collections.sort(productTestList, new Comparator() {@Overridepublic 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 getProductTestList(){List 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 productTestList2 = getProductTestList();List sortList = productTestList2.stream().sorted(Comparator.comparing(Product::getCreateDate)).collect(Collectors.toList());System.out.println(sortList);}

效果:
 

如果需要倒序则:

在compring()后面加上 reversed()

 

 

相关内容

热门资讯

《为了谁》节目主持词 《为了谁》节目主持词  持人在台上所表演的主持词,则是集会的灵魂之所在。下面是小编收集整理的《为了谁...
新郎婚礼致辞 关于新郎婚礼致辞(精选5篇)  在日常学习、工作和生活中,大家都写过致辞吧,致辞是指在举行会议或某种...
乔迁的感谢词 乔迁的感谢词  尊敬的各位来宾、女士们、先生们、亲爱的父老乡亲们:  大家好!  首先我代表我的家人...
开业致辞 开业致辞(通用6篇)  在日复一日的学习、工作或生活中,大家或多或少都用到过致辞吧,致辞要求风格的雅...
80岁生日庆典主持词 80岁生日庆典主持词(精选5篇)  主持词可以采用和历史文化有关的表述方法去写作以提升活动的文化内涵...
感恩节活动主持词 2022年感恩节活动主持词  根据活动对象的不同,需要设置不同的主持词。在如今这个中国,我们对主持词...
电视剧《一起同过窗》经典的台... 电视剧《一起同过窗》经典的台词  在社会一步步向前发展的今天,很多情况下我们需要用到台词,台词是用以...
开门红主持词 开门红主持词  活动对象的不同,主持词的写作风格也会大不一样。在现在的社会生活中,主持人在活动中起到...
六一儿童节慰问活动致辞 六一儿童节慰问活动致辞(通用5篇)  在我们平凡的日常里,大家一定都接触过致辞吧,致辞具有有张有弛、...
生日主持词 关于生日主持词范文集锦五篇  主持词要注意活动对象,针对活动对象写相应的主持词。在当今社会生活中,司...
春晚节目主持人 临近春节,中央电视台毫无悬念地对外宣布70后吕逸涛,正式出任2016年猴年央视春晚总导演。消息公布后...
教师节领导简短致辞 教师节领导简短致辞(精选8篇)  在日常学习、工作和生活中,大家都不可避免地要接触到致辞吧,致辞讲求...
同学会主持词 【精华】同学会主持词(通用10篇)  主持词要根据活动对象的不同去设置不同的主持词。在当今社会生活中...
演讲比赛闭幕词 演讲比赛闭幕词范文(精选8篇)  要增加主持词的文化内涵,达到寓教于乐的主持词的写作,在不增加篇幅的...
学子宴主持词 学子宴主持词  各位女士、各位嘉宾、各位亲朋挚友,  合:大家好!  女:今日,初秋丽日,艳阳高照;...
晚会结束语主持词 晚会结束语主持词范文汇总5篇  主持词要把握好吸引观众、导入主题、创设情境等环节以吸引观众。在当今社...
南安市延平中学第三届教代会第... 南安市延平中学第三届教代会第三次会议闭幕词范文各位代表、同志们:  历时一天的南安市延平中学第三届教...
《老友记》经典台词 《老友记》经典台词集锦  She just graduated. 她刚毕业。  We don't h...
新上岗同事接风宴会上的致辞 新上岗同事接风宴会上的致辞  谢谢大家,我想说三句话。  第一句:热烈欢迎。今天宴会的主题是:为新参...
迎新晚会主持词 迎新晚会主持词范文(精选9篇)  主持词要把握好吸引观众、导入主题、创设情境等环节以吸引观众。在人们...