今天总结了下JDK中排序的方法,包括JDK8中强大的lambda表达式及函数式接口运用,不废话,请看下面示例。

public class Test {

public static void main(String\[\] args) {

List list = initList();

// jdk8之前的排序

Collections.sort(list, new Comparator() {

@Override

public int compare(User o1, User o2) {

return o1.getAge().compareTo(o2.getAge());

}

});

// jdk8 lambda排序,带参数类型

list = initList();

list.sort((User u1, User u2) -> u1.getAge().compareTo(u2.getAge()));

list.forEach(System.out::println);

System.out.println();

// jdk8 lambda排序,不带参数类型

list = initList();

list.sort((u1, u2) -> u1.getAge().compareTo(u2.getAge()));

list.forEach(System.out::println);

System.out.println();

// jdk8 排序,User类静态方法引用

list = initList();

list.sort(User::compareAge);

list.forEach(System.out::println);

System.out.println();

// jdk8 升序排序,Comparator提供的静态方法

list = initList();

Collections.sort(list, Comparator.comparing(User::getAge));

list.forEach(System.out::println);

System.out.println();

// jdk8 降序排序,Comparator提供的静态方法

list = initList();

Collections.sort(list, Comparator.comparing(User::getAge).reversed());

list.forEach(System.out::println);

System.out.println();

// jdk8 组合排序,Comparator提供的静态方法,先按年纪排序,年纪相同的按名称排序

list = initList();

Collections.sort(list, Comparator.comparing(User::getAge).thenComparing(User::getName));

list.forEach(System.out::println);

}

private static List initList() {

List list = new ArrayList<>();

list.add(new User("lisa", 23));

list.add(new User("tom", 11));

list.add(new User("john", 16));

list.add(new User("jennis", 26));

list.add(new User("tin", 26));

list.add(new User("army", 26));

list.add(new User("mack", 19));

list.add(new User("jobs", 65));

return list;

}

}

看完有没有觉得很惊艳,简直屌炸天,Lumbda表达式+函数式接口还有更多强大的应用下回再做个专题介绍。

推荐去我的博客:

觉得不错,别忘了点赞+转发哦!

java8 大到小排序,屌炸天,JDK8的排序大法!!相关推荐

  1. python输入字符串从大到小排列_791. 自定义字符串排序(Python)

    难度:★★☆☆☆ 类型:字符串 方法:无 力扣链接请移步本题传送门 更多力扣中等题的解决方案请移步力扣中等题目录 题目 字符串S和 T 只包含小写字符.在S中,所有字符只会出现一次. S 已经根据某种 ...

  2. java怎么从大到小排序元祖_列表、元祖的操作

    列表里面可以放对象,list用[ ] 表示,里面的对象用逗号隔开,里面的对象是有顺序的,列表有索引,可以进行切片,切片后产生新的列表. 列表的操作: 1.增 1.1append("xxx&q ...

  3. 对10个整数按由大到小顺序排序

    用选择法对10个整数按由大到小顺序排序 源代码: #include <stdio.h> void main() {  void sort(int x[],int n);  int *p,i ...

  4. R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩、自定义调色板、在两端添加点图的线段segments、整体排序从大到小、自定义数据点的大小、添加数值标签)

    R语言使用ggpubr包的ggdotplot函数可视化水平棒棒糖图(自定义分组数据点色彩.自定义调色板.在两端添加点图的线段segments.整体排序从大到小.自定义数据点的大小.添加数值标签) 目录

  5. 使用shell统计字符串出现的次数,并从大到小进行排序显示

    需求说明:对文档中的字符串进行统计,并进行排序后(从大到小),显示出前2条记录 构造的test.txt内容如下: a 12332 a 2323 a 234234 b 232 c 23432 c 34 ...

  6. arraylist从大到小排序_初学Python最简易入门之十四排序算法10对字典排序

    当用sorted()函数对字典临时排序的时候,默认是对字典键名从小到大排序,排序的结果以列表的形式输出.如图14-10-1所示实例14-10-1用sorted()对棋类字典排序.pyw,程序执行结果见 ...

  7. c++ sort 从大到小排序_C语言必学的12个排序算法:冒泡排序(第4篇)

    基本思想 冒泡排序(Bubble Sort),是一类"交换"类排序方法,类似水中冒泡,最大的数据会沉到水底,较小的数会浮上来.很简单,以从小到大排序为例,每一趟排序将"逆 ...

  8. java 一千万数字排序_java 输入任意几个数字,怎样将他们从大到小排序?

    展开全部 public static void main(String[] args) { Scanner scan = new Scanner(System.in).e68a84e8a2ad3231 ...

  9. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

最新文章

  1. 基于Transformers入门自然语言处理!
  2. Ganymed SSH-2 for Java
  3. laravel框架中文手册_Laravel框架的这些你都懂的话,它核心架构基本就懂了
  4. php lamp环境搭建,lamp环境搭建 --lnmp环境搭建_无需整理
  5. UT斯达康XV6700的写号方法[图]
  6. Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法](转)
  7. 华科高级软件测试技术1704班-02组 如何计算团队成员贡献分
  8. Dubbo 线上 Thread pool is EXHAUSTED 问题排查
  9. 微信用户全局唯一标识_忘掉 Snowflake,感受一下性能高出587倍的全局唯一ID生成算法...
  10. @Valid注解的使用
  11. inotify java maven_inotifywait + rsync 监控文件并同步
  12. pow,sqrt使用时需注意
  13. php 文件预览 水印,php实现在线预览word等office文件,同时添加水印
  14. 百度api申请key
  15. 树莓派做BT下载器:transmission
  16. vpay平台模式开发 15天交付系统
  17. 【已解决】瞎设置代理服务器后IE浏览器上不了网
  18. DARPA到底是什么?一个能轻松将人类变成电子生化人的科技
  19. 计算机组成原理笔记(王道考研) 第二章:数据的表示和运算1
  20. SD卡寄存器及对应的CMD命令描述

热门文章

  1. 一种业界通用的响应式布局解决方法
  2. EOJ Monthly 2019.2 (based on February Selection) D.进制转换
  3. Tomcat设置Http自动跳转Https
  4. 0811-按钮操作(加法计算器)(拖控件找控件代码属性名称)(frame center bounds)(上下左右移动button图片)...
  5. SQL Server 数据库优化文章
  6. ndroid网络(4):HttpClient必经之路----使用线程安全的单例模式HttpClient,及HttpClient和Application的融合...
  7. 开始复习下sql,常用SQL语句示例(一)
  8. ListView的分页显示
  9. 在线网摘收藏?让Google来吧!
  10. C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)