二、Lambda 表达式

首先看看在老版本的Java中是如何排列字符串的:

List names = Arrays.asList("peter", "anna", "mike", "xenia");

Collections.sort(names, new Comparator() {    @Override    public int compare(String a, String b) {        return b.compareTo(a);    }});

只需要给静态方法 Collections.sort 传入一个List对象以及一个比较器来按指定顺序排列。通常做法都是创建一个匿名的比较器对象然后将其传递给sort方法。

在Java 8 中你就没必要使用这种传统的匿名对象的方式了,Java 8提供了更简洁的语法,lambda表达式:

Collections.sort(names, (String a, String b) -> {    return b.compareTo(a);});

看到了吧,代码变得更段且更具有可读性,但是实际上还可以写得更短:

Collections.sort(names, (String a, String b) -> b.compareTo(a));

对于函数体只有一行代码的,你可以去掉大括号{}以及return关键字,但是你还可以写得更短点:

Collections.sort(names, (a, b) -> b.compareTo(a));

java8新特性以及原因_JAVA8 十大新特性详解相关推荐

  1. Gartner2019年十大安全项目详解

    (文章来源https://www.sec-un.org/gartner2019年十大安全项目详解/ ) 1. 概述 2019年2月11日,Gartner一改过去在年度安全与风险管理峰会上发表10大安全 ...

  2. 大数据是什么和大数据技术十大核心原理详解

     一.数据核心原理   从"流程"核心转变为"数据"核心   大数据时代,计算模式也发生了转变,从"流程"核心转变为"数据&quo ...

  3. Gartner:2018年十大安全项目详解

    Gartner 2018年十大安全项目详解 Last Modified By Bennyye @ 2018-11-20 1     概述 2018年6月份,一年一度的Gartner安全与风险管理峰会上 ...

  4. 大数据技术十大核心原理详解

    一.数据核心原理--从"流程"核心转变为"数据"核心 大数据时代,计算模式也发生了转变,从"流程"核心转变为"数据"核心 ...

  5. mysql入门优化_MySQL数据库:MySQL十大优化技巧详解

    本文主要向大家介绍了MySQL数据库的MySQL十大优化技巧详解,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. WEB开发者不光要解决程序的效率问题,对数据库的快速访问和相应也是 ...

  6. java8新特性_JAVA8十大新特性详解

    一.接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: interface Formula { double ...

  7. 算法之十大滤波算法详解

    限幅滤波法 1.方法限幅滤波法又称嵌位滤波法,或程序判断滤波法.这种滤波法的思路是: 先根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新采样值时进行判断: (1)如果本次新采样值与上次 ...

  8. ❤️十大排序算法详解❤️——可能是你看过最全的,完整版代码

    文章目录 前言 交集排序 冒泡 简单 快速排序 插入排序 直接插入排序 希尔排序 选择排序 简单选择排序 堆排序 归并排序 二路 多路 非比较类 计数排序 桶排序 基数排序 最后 前言 兄弟们,应上篇 ...

  9. 十大排序算法详解(二)归并排序、堆排序、计数排序、桶排序、基数排序

    文章目录 一.归并排序 1.1 归并排序基础[必会知识] 1.1.1 递归实现 1.1.2 非递归实现 1.2 归并排序优化 1.2.1 小数组使用插入排序 1.2.2 避免多余比较 1.2.3 节省 ...

最新文章

  1. 深入理解javascript中的立即执行函数(function(){…})()
  2. 将做好的py文件打包成模块,供别人安装调用
  3. 关于HTML5的十条霸气侧漏预测
  4. 白话异常检测算法Isolation Forest
  5. Mysql使用存储过程与函数进行批量插入数据
  6. SQL_server_2000安装过程指导
  7. 使用@Autowired注解警告Field injection is not recommended
  8. koa-router 源码浅析
  9. 20-spring学习-Spring MVC基本操作
  10. CCF201703-5 引水入城(100分题解链接)
  11. CCF NOI1000 加密算法
  12. SpringMVC系列(四)使用 POJO 对象绑定请求参数值
  13. php原创度检测工具,推荐一款不错的伪原创工具
  14. Android简历 模板
  15. LTE下行传输机制--PBCH
  16. 改变linux 背景修改命令,Linux命令行下更改桌面背景(GNOME环境)
  17. UE5 tiles 材质缩放平铺
  18. 如何实现WiFi与5G无缝切换?如何进行无线通信切换测试?(二)
  19. 产品经理知识框架+求职面经——快手,字节跳动,
  20. 智能车辆路径跟踪:carsim和simulink联合仿真,基于车速的变权重多点预瞄驾驶员模型个例

热门文章

  1. kettle同步数据到hive 巨慢_超详细教程,kettle ETL mysql到hadoop hive数据抽取,值得收藏...
  2. kali linux 截图位置,Kali Linux中使用shutter截图工具 | CN-SEC 中文网
  3. 6位密码锁的c语言编程,51单片机4*3矩阵键盘6位密码锁c语言程序
  4. 的setinterval函数_ES6 极简教程 lt;6gt; 函数扩展
  5. apt-get包管理详解
  6. zabbix的agent端的主动模式关键三个参数
  7. 对比特币勒索病毒进行批量安装永恒之蓝补丁
  8. [转载]ns2在linux安装过程
  9. 解耦与人类行为 (完整)
  10. 剪映专业版PC端清理缓存与日志