zoukankan      html  css  js  c++  java
  • 如何使用 Java 对 List 中每个对象元素按时间顺序进行排序

    如何使用 Java 对 List 中每个对象元素按时间顺序进行排序
    Java 实现

    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    public class TestListSort {
        private static class UserBean {
            private String id;
            private String birthday;
    
            public String getId() {
                return id;
            }
    
            void setId(String id) {
                this.id = id;
            }
    
            String getBirthday() {
                return birthday;
            }
    
            void setBirthday(String birthday) {
                this.birthday = birthday;
            }
    
            // 重写 toString() 方法
            public String toString() {
                return "id:" + id + ", birthday:" + birthday;
            }
        }
    
        public static void main(String[] args) {
            List<UserBean> list = new ArrayList<>();
            UserListGenerate(list);
            System.out.println("排序前:" + list);
            ListSort(list);
            System.out.println("排序后:" + list);
        }
    
        private static void UserListGenerate(List<UserBean> list) {
            UserBean user1 = new UserBean();
            UserBean user2 = new UserBean();
            UserBean user3 = new UserBean();
            user1.setId("zhagnsan");
            user1.setBirthday("1980-11-01");
    
            user2.setId("lisi");
            user2.setBirthday("1981-12-01");
    
            user3.setId("wangwu");
            user3.setBirthday("1980-12-01");
    
            list.add(user1);
            list.add(user2);
            list.add(user3);
        }
    
        private static void ListSort(List<UserBean> list) {
            list.sort((o1, o2) -> {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                try {
                    Date dt1 = format.parse(o1.getBirthday());
                    Date dt2 = format.parse(o2.getBirthday());
                    return Long.compare(dt1.getTime(), dt2.getTime());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return 0;
            });
        }
    }
    

    运行结果

    排序前:[id:zhagnsan, birthday:1980-11-01, id:lisi, birthday:1981-12-01, id:wangwu, birthday:1980-12-01]
    排序后:[id:zhagnsan, birthday:1980-11-01, id:wangwu, birthday:1980-12-01, id:lisi, birthday:1981-12-01]
    

    参考资料

  • 相关阅读:
    《统计学习方法》笔记十 隐马尔可夫模型
    《统计学习方法》笔记九 EM算法及其推广
    《统计学习方法》笔记八 提升方法
    《统计学习方法》笔记七(3) 支持向量机——非线性支持向量机
    拜拜~~~
    拓扑排序+DP CF721C Journey
    数学 CF1068B LCM
    扩展欧拉定理【洛谷P4139】 上帝与集合的正确用法
    浅谈扩展欧拉定理
    数论 CF230B T-primes
  • 原文地址:https://www.cnblogs.com/hgnulb/p/9667007.html
Copyright © 2011-2022 走看看