• 首页
  • 邻居
  • 关于
  • 归档
  • 搜索
  • 夜间模式
    ©2020-2026  我的学习笔记 Theme by OneBlog

    我的学习笔记博客

    搜索
    标签
    # 随笔 # Java # 教程 # openwrt # Mysql # SQL # 爬虫 # post # Js调优 # MAVEN
  • 首页>
  • 随笔>
  • 正文
  • 【JAVA 8】 List 使用Lambda表达式操作对象字段进行升序、降序

    2019年12月24日 1.4 k 阅读 0 评论 1900 字

    public static void main(String[] args) {

    // 初始化集合
    List<User> userList = new ArrayList<User>();
    Random random = new Random();
    for (int i = 0; i < 15; i++) {
        userList.add(new User(
                random.nextInt(100),
                "user" + i,
                new Date(System.currentTimeMillis() - random.nextInt(100))));
    }
    // 原集合
    System.out.println("------userList------");
    userList.forEach((user) -> {
        System.out.println(user);
    });
    
    // 升序
    System.out.println("------ascByBirthdayList------");
    List<User> ascByBirthdayList = userList.stream().sorted().collect(Collectors.toList());
    ascByBirthdayList.forEach((user) -> {
        System.out.println(user);
    });
    // 降序 --> 注意是在 ascByBirthdayList 的基础上,将 ascByBirthdayList 集合反转,更容易理解
    System.out.println("------descByBirthdayList------");
    List<User> descByBirthdayList = ascByBirthdayList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
    descByBirthdayList.forEach(user -> {
        System.out.println(user);
    });
    
    // 升序
    System.out.println("------ascByIdList------");
    List<User> ascByIdList = userList.stream().sorted(Comparator.comparing(User::getId)).collect(Collectors.toList());
    ascByIdList.forEach(user -> {
        System.out.println(user);
    });
    /*
        降序 --> 注意这里不能在 ascByIdList 的基础上,将 ascByIdList 集合反转
    
        如果这里仅仅使用 ascByIdList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
        那么得到的结果和 descByBirthdayList 是一致的, 因为没有指明排序的字段,默认是按birthday来排序的
     */
    System.out.println("------descByIdList------");
    List<User> descByIdList = userList.stream().sorted(Comparator.comparing(User::getId).reversed()).collect(Collectors.toList());
    descByIdList.forEach(user -> {
        System.out.println(user);
    });
    

    }

    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    首页邻居关于归档
    Copyright©2020-2026  All Rights Reserved.  Load:0.016 s
    京ICP备18019712号
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。