zoukankan      html  css  js  c++  java
  • java list集合元素根据某些字段排序(转)

    原文地址:java list集合元素根据某些字段排序

    一、jdk1.6的环境下

      新建ComparatorSort类,并实现Comparator接口,重写compare方法

      降序排序:o1的元素>o2的元素,并返回-1;o1的元素小于o2的元素,并返回1

      升序排序:o1的元素>o2的元素,并返回1;o1的元素小于o2的元素,并返回-1

      在方法中可对多个元素进行判断。

      

    复制代码
    
    
    import java.util.Comparator;
    
    import app.component.app.entity.AppProjectContRankVo;
    
    public class ComparatorSort implements Comparator<AppProjectContRankVo> {
    
        @Override
        public int compare(AppProjectContRankVo o1, AppProjectContRankVo o2) {
            if(o1.getOverdueRatio().compareTo(o2.getOverdueRatio())==1){
                return -1;
            }else if(o1.getOverdueRatio().compareTo(o2.getOverdueRatio())==-1){
                return 1;
            }else{
                return 0;
            }
        }
    }
     
    复制代码

    然后对需要排序的集合执行collections.sort

    Collections.sort(conBalCountByOrgNoList,new ComparatorSort());

    二、jdk1.8环境下

      可使用stream进行排序

     多条件排序使用:thenComparing
      降序排序使用:reversed()
    List<User> list = new ArrayList<User>();
            User user1 = new User();
            user1.setAge(19);
            user1.setScore(29);
            list.add(user1);
            User user2 = new User();
            user2.setAge(65);
            user2.setScore(322);
            list.add(user2);
            User user3 = new User();
            user3.setAge(19);
            user3.setScore(89);
            list.add(user3);
            List<User> listSort = list.stream().sorted(Comparator.comparing(User::getAge).reversed().thenComparing(User::getScore)).collect(Collectors.toList());
            for(User u:listSort){
                System.out.println(u.getAge()+"|"+u.getScore());
            }
    

    不需要使用多条件或者不需要倒叙的,把.reversed().thenComparing(User::getScore)删掉就行

  • 相关阅读:
    97. Interleaving String
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    94. Binary Tree Inorder Traversal
    odoo many2many字段 指定打开的form视图
    docker sentry 配置文件位置
    postgres 计算时差
    postgres 字符操作补位,字符切割
    postgres判断字符串是否为时间,数字
    odoo fields_view_get
  • 原文地址:https://www.cnblogs.com/wl1202/p/13501794.html
Copyright © 2011-2022 走看看