JAVA

您所在的位置:网站首页 vb中list的属性 JAVA

JAVA

2023-04-02 19:17| 来源: 网络整理| 查看: 265

        在具体业务中,有时会获取到一个排序混乱的List,这时候需要根据List中对象的某些属性对其重新排序。

        下面是一个对字符串日期属性进行排序的例子。

        为了方便展示,list中的对象使用map代替。

    updateTimeList为排序前的乱序集合,maxUpdateTime为重新排序后的集合。重新排序后不会影响排序前集合内部的顺序。

        需要注意的一点是,参与排序的属性如果为空会异常。

package com.example.demo.service; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import java.util.*; import java.util.stream.Collectors; public class dateSort { public static void main(String[] args) { //1.能不能传环节实例Id //2.不能传,根据环节定义Id找到所有环节,找最新的环节 List updateTimeList = new ArrayList(); HashMap hashMap1 = MapUtil.newHashMap(); hashMap1.put("createTime","2020-09-23 13:20:53"); hashMap1.put("no1","小"); HashMap hashMap0 = MapUtil.newHashMap(); hashMap0.put("createTime","2021-09-23 13:20:55"); hashMap0.put("no1","超大"); HashMap hashMap2 = MapUtil.newHashMap(); hashMap2.put("createTime","2021-09-23 13:20:53"); hashMap2.put("no1","中"); HashMap hashMap3 = MapUtil.newHashMap(); hashMap3.put("createTime","2021-09-23 13:20:54"); hashMap3.put("no1","大"); updateTimeList.add(hashMap1); updateTimeList.add(hashMap0); updateTimeList.add(hashMap2); updateTimeList.add(hashMap3); System.out.println(updateTimeList); List maxUpdateTime = updateTimeList.stream().sorted(new Comparator() { @Override public int compare(Map m1, Map m2) { try { DateTime d1 = DateUtil.parse((String) m1.get("createTime")); DateTime d2 = DateUtil.parse((String) m2.get("createTime")); //正序 //return d1.compareTo(d2); //倒序 return d2.compareTo(d1); } catch (Exception e) { e.printStackTrace(); } return 0; } }).collect(Collectors.toList()); System.out.println(updateTimeList); System.out.println(maxUpdateTime); //3.取最新环节的创建时间 //4.查创建时间至今范围内环节意见 } }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3