zoukankan      html  css  js  c++  java
  • java实体类集合按某字段排序方法 备份

     package simpletest;
    
    /**
     * 测试实体类
     * @author YuanReny1
     *
     */
    public class User {
        private String name;
        private String birthDay;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getBirthDay() {
            return birthDay;
        }
        public void setBirthDay(String birthDay) {
            this.birthDay = birthDay;
        }
        public User(String name, String birthDay) {
            super();
            this.name = name;
            this.birthDay = birthDay;
        }
        
    }
    package simpletest;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    import org.apache.commons.beanutils.BeanComparator;
    import org.apache.commons.collections.ComparatorUtils;
    import org.apache.commons.collections.comparators.ComparableComparator;
    
    public class ListSortTest {
        
        /**
         * bean的集合按照指定bean的字段排序
         * @param list 要排序的集合
         * @param filedName 字段名称
         * @param ascFlag 是否升序
         */
        public static void sort(List list, String filedName, boolean ascFlag) {
            if (list.size() == 0 || filedName.equals("")) {
                return;
            }
            Comparator<?> cmp = ComparableComparator.getInstance();
            if (ascFlag) {
                cmp = ComparatorUtils.nullLowComparator(cmp);
            } else {
                cmp = ComparatorUtils.reversedComparator(cmp);
    
            }
            Collections.sort(list, new BeanComparator(filedName, cmp));
        }
        
        static void test() {
            List<User> list = new ArrayList<>();
            list.add(new User("张三", "2020-02-01 16:00:01"));
            list.add(new User("李四", "2020-02-03 08:40:32"));
            list.add(new User("王五", "2020-02-01 09:33:32"));
            sort(list, "birthDay", false);
            for(User u : list) {
                System.out.println(u.getName() + "-> " + u.getBirthDay());
            }
        }
        
        public static void main(String[] args) {
            test();
        }
    }

    预期结果:User的集合按照birthDay降序排序

  • 相关阅读:
    python--将jenkins配置的任务导出到Excel
    python--终端工具之subprocess
    jquery-触底加载无限滚动
    python-比较字典value的最大值
    Linux-查看cpu核数和个数、查看内存的命令
    python读取本地正在运行的docker容器
    关于get 和post 方法的比较
    git相关的一篇不错的文章
    Java 函数调用是传值还是传引用? 从字节码角度来看看!
    Unity3D移动平台动态读取外部文件全解析
  • 原文地址:https://www.cnblogs.com/xueblvip/p/13498078.html
Copyright © 2011-2022 走看看