zoukankan      html  css  js  c++  java
  • java中list的sort()功能如何使用?

    排序时正序/倒序处理起来可能会混淆,可以用更简单的方法。
    可以使用java.util自带的比较器来做

    Comparator.comparingInt(Integer::intValue).reversed() // 倒序
    Comparator.comparingInt(Integer::intValue) // 正序
    

      示例:

    public class Main {
        public static void main(String[] args) {
            List<Integer> list = Lists.newArrayList(1, 2, 3);
            list.sort(Comparator.comparingInt(Integer::intValue).reversed()); // 倒序
            print(list);
            list.sort(Comparator.comparingInt(Integer::intValue)); // 默认正序
            print(list);
            List<Integer> list2 = Lists.newArrayList(1, 2, 3);
            list2 = list2.stream().sorted(Comparator.comparingInt(Integer::intValue).reversed())
                    .collect(Collectors.toList()); // 倒序
            print(list2);
            list2 = list2.stream().sorted(Comparator.comparingInt(Integer::intValue))
                    .collect(Collectors.toList()); // 默认正序
            print(list2);
        }
        /**
         * 输出
         */
        private static <T> void print(List<T> list) {
            list.forEach(e -> System.out.print(e + ","));
            System.out.println();
        }
    }
    

      执行输出为:

    3,2,1,
    1,2,3,
    3,2,1,
    1,2,3,
    

      对于复杂对象,比如User,想通过年龄来比较

    public class User {
        public String name; // 姓名
        public int age; // 年龄
        public int getAge() {
            return age;
        }
    }
    

      可以使用:

    Comparator.comparingInt(User::getAge).reversed() // 倒序
    Comparator.comparingInt(User::getAge) // 正序
    

      

  • 相关阅读:
    中间件
    Linux命令
    Ionic 2 Guide
    JSON WEB TOKENS
    用MSBuild和Jenkins搭建持续集成环境(2)
    用MSBuild和Jenkins搭建持续集成环境(1)
    全文检索和消息队列
    redis之如何配置jedisPool参数
    Redis Clients Handling
    redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
  • 原文地址:https://www.cnblogs.com/love-feng/p/11324937.html
Copyright © 2011-2022 走看看