java8 新特性 —— Lambda 表达式

news2024/12/27 12:01:01

我们来看一段老版本的示例代码,其对一个含有字符串的集合进行排序:(示例代码创建了一个匿名内部类作为入参。)

// Collections 工具类提供了静态方法 sort 方法,入参是一个 List 集合,和一个 Comparator 比较器,以便对给定的 List 集合进行 排序。
List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");
Collections.sort(names, new Comparator<String>() {
    @Override
    public int compare(String a, String b) {
        return b.compareTo(a);
    }
});
// Lambda 表达
Collections.sort(names, (String a, String b) -> {
    return b.compareTo(a);
});
// 对于只包含一行方法的代码块,我们可以省略大括号,直接 return 关键代码即可
Collections.sort(names, (String a, String b) -> b.compareTo(a));
// List 集合现在已经添加了 sort 方法。而且 Java 编译器能够根据类型推断机制判断出参数类型,这样,你连入参的类型都可以省略
names.sort((a, b) -> b.compareTo(a));

什么条件下才能使用 lambda 表达式:

上面的例子中,从一开始的 “匿名内部类” 的形式 new Comparator<String>() {... ...},到后面的 “lambda表达式” (String a, String b) -> {... ...}。之所以能这样转变,是因为 Comparator 是一个 “函数式接口”(只包含一个抽象方法的接口)。

网上关于 lambda的使用条件给出的说法如下,请做参考
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++栈和队列(详解+刷题)

&#x1f442; 爱要坦荡荡 - 萧潇 - 单曲 - 网易云音乐 &#x1f442; 武侯祠 - 闫东炜 - 单曲 - 网易云音乐 &#x1f442; You Are My Sunshine - Angelika Vee - 单曲 - 网易云音乐 (๑•̀ㅂ•́)و✧ O(∩_∩)O (ง •_•)ง (&#xff5e;﹃&#xff5e;)~zZ …

微鳄三六五软件,企业实现数字化转型仅需2万

关键词&#xff1a;OA办公系统、知识管理系统、群晖NAS 编者按&#xff1a; 疫情对全球经济有着巨大冲击&#xff0c;有调查表明80%的中小企业营收下滑&#xff0c;有30%的中小企业营收减半。天翎特此推出万元即可实现数字化管理方案&#xff0c;为企业提供办公管理、项目管理、…

Canvas.arcTo() 的使用,画一条带圆角的线段,画一个思维导图一基础

Canvas.arcTo() 的使用&#xff0c;画一条带圆角的线段&#xff0c;画一个思维导图一基础 一、方法定义 canvas.arcTo 这个方法还是比较难理解的。因为它不是直观的绘制路径&#xff0c;而是间接的。 它的参数是这样的。 canvas.arcTo(ax,ay,bx,by,radius)它是由两个点和一个…

密码学学习笔记(十):Digital Signatures - 数字签名1

什么是数字签名&#xff1f; 想象一下一下情景&#xff1a; Alice生成两个密钥&#xff1a;一个公钥&#x1d443;&#x1d43e;&#x1d434; & 对应的密钥&#x1d446;&#x1d43e;&#x1d434;, 发布公钥&#xff0c;保留密钥然后Alice使用&#x1d446;&#x1d4…

ARG DEBIAN_FRONTEND=noninteractive作用说明

使用 在Dockerfile中使用ARG指令定义变量并为其指定一个默认值。ARG指令用于在构建过程中传递变量的值。 对于DEBIAN_FRONTENDnoninteractive&#xff0c;它定义了一个名为DEBIAN_FRONTEND的变量&#xff0c;并将其默认值设置为noninteractive。在这个上下文中&#xff0c;no…

【uniapp开发h5】点击复制微信号并自动打开微信应用,类似可以唤起淘宝、知乎应用等

效果展示&#xff1a; 准备工作&#xff1a; 引用jquery.js 和 clipboard.min.js jQuery就不用多说了&#xff0c;而clipboard.min.js 是一个 JavaScript 库&#xff0c;用于实现网页上的复制到剪贴板功能。它提供了一种简单的方式来处理复制操作&#xff0c;无需使用浏览器原…

Ubuntu 包管理的 20 个“apt-get”命令

动动发财的小手&#xff0c;点个赞吧&#xff01; 在引入 apt 命令之前&#xff0c;apt-get 命令是基于 Debian 的 Linux 发行版中使用的主要包管理命令。 使用 apt-get 命令&#xff0c;您可以在系统上安装、删除、升级、搜索和管理软件包。然而&#xff0c;从 Ubuntu 16.04 和…

22运动估计(matlab程序)

1.简述 实验目的 熟悉运动估计的块匹配&#xff08;BMA&#xff09;算法原理&#xff0c;编程实现全搜索算法&#xff08;三步搜索或钻石搜索算法&#xff09;&#xff0c;了解运动估计在混合编码器中的作用。 实验内容 1&#xff09;编写全搜索算法函数&#xff0c;将运动矢量…

使用Llama.cpp在CPU上快速的运行LLM

大型语言模型(llm)正变得越来越流行&#xff0c;但是它需要很多的资源&#xff0c;尤其时GPU。在这篇文章中&#xff0c;我们将介绍如何使用Python中的llama.cpp库在高性能的cpu上运行llm。 大型语言模型(llm)正变得越来越流行&#xff0c;但是它们的运行在计算上是非常消耗资源…

MongoDB教程-5

复制是跨多个服务器同步数据的过程。复制在不同的数据库服务器上提供数据的多个副本&#xff0c;从而提供冗余并提高数据可用性。复制可防止数据库丢失单个服务器。复制还允许您从硬件故障和服务中断中恢复。通过增加数据拷贝&#xff0c;您可以将其中一个用于灾难恢复、报告或…

Spring系列4 -- Bean的作用域和生命周期

目录 1. 案例 2. 作用域定义 2.1 Bean的6种作用域 2.2 设置作用域 3. Sring的执行流程 4. Bean的生命周期 思考: 为什么不是先进行初始化然后再进行设置属性呢? 1. 案例 假设现在有⼀个公共的 Bean&#xff0c;提供给 A ⽤户和 B ⽤户使⽤&#xff0c;然⽽在使⽤的途中…

【面试】Hbase

逻辑模型 1 NameSpace 命名空间&#xff0c;类似于关系型数据库的database概念&#xff0c;每个命名空间下有多个表。Hbase有两个自带的命名空间,分别是hbase和default, hbase中存放的是HBase内置的表, default表是用户默认使用的命名空间。 2 Region 类似于关系型数据库的表…

综合 案例

案例1&#xff1a;淘宝焦点图布局 基本结构 1.大盒子我们类名为: tb-pro淘宝广告 2.里面先放一张图片 3.左右两个按钮用链接。左箭头prev 右箭头 next 4.底侧小圆点用ul 类名为pro-nav 注意&#xff1a; 1.如果一个盒子既有left属性也有right属性&#xff0c;则默认会执行lef…

Nvidia Jetson Orin系列配置教程

Nvidia Jetson Orin系列配置教程包含Orin系列的安装及配置办法&#xff0c;目前最为推荐的办法是通过Nvidia SDK Manager进行安装&#xff0c;详细内容如下&#xff1a; 法1&#xff1a;通过Nvidia SDK Manager进行安装 1.下载工具 前往Nvidia SDK Manager下载工具 2.安装工…

Lesson3-3:OpenCV图像处理---图像平滑

图像平滑 学习目标 了解图像中的噪声类型了解平均滤波&#xff0c;高斯滤波&#xff0c;中值滤波等的内容能够使用滤波器对图像进行处理 1 图像噪声 由于图像采集、处理、传输等过程不可避免的会受到噪声的污染&#xff0c;妨碍人们对图像理解及分析处理。常见的图像噪声有高…

MySQL之CRUD及常见面试题讲解

目录 一、CRUD是什么 二、什么是SQL注入 三、行转列的使用 四、CRUD中常用关键词 关键词&#xff1a; GROUP BY HAVING ORDER BY 五、聚合函数和连表查询 聚合函数 连表查询 六、DELETE、TRUNCATE、DROP的区别 七、MySQL常见面试题讲解 一、CRUD是什么 CRUD是一个常…

ARMv8的异常等级(Exception Level)以及执行状态(AArch64/AArch32)

目录 1&#xff0c;异常等级&#xff08;Exception Level&#xff09; 2&#xff0c;Execution states&#xff0c;执行状态 AArch64的异常等级 AArch32的异常等级 3&#xff0c;异常等级切换 4&#xff0c;执行状态切换&#xff08;AArch64 <> AArch32&#xff09;…

文件下载功能(简单粗暴)

文件下载功能 // 模板下载 export const modelLoadInterface (data: any) > {return get<Response>(tsureexapp-exchange/config/points/grant/export.json, data, {skipErrorHandler: true,}); };import {modelLoadInterface} from "/services/CommunicationF…

山西电力市场日前价格预测【2023-07-11】

日前价格预测 预测明日&#xff08;2023-07-11&#xff09;山西电力市场全天平均日前电价为419.66元/MWh。其中&#xff0c;最高日前价格为490.80元/MWh&#xff0c;预计出现在11: 45。最低日前电价为365.06元/MWh&#xff0c;预计出现在24: 00。 价差方向预测 1&#xff1a;实…

关于Xxl-job执行器自动注册不了的问题

最近项目里面用到了xxljob&#xff0c;然后按照官方文档自己搭建了一个&#xff0c;发现一个问题&#xff0c;就是执行器自动注册不了&#xff0c;然后一顿百度&#xff0c;发现是这个配置的问题&#xff1a; 这个 xxl.job.executor.appname 是执行器的名称&#xff0c;是要和页…