Java基础-lambda表达式

简化匿名内部类的书写
下面两种写法均可;

Arrays.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}
});
Arrays.sort(arr, (Integer o1, Integer o2) -> {return o1 - o2;}
);

在这里插入图片描述

函数式编程思想,更注重方法体的逻辑,而不是谁去做;
而Lambda表达式就是函数式思想的体现;
Lambda表达式到的格式:

在这里插入图片描述

示例:

在这里插入图片描述
在这里插入图片描述

示例代码:

public class demo1 {public static void main(String[] args) {    method(() -> {System.out.println("正在游泳~~");});method(new Swim() {@Overridepublic void swimming() {System.out.println("正在游泳~~");}});}public static void method(Swim swim){swim.swimming();}
}@FunctionalInterface
interface Swim{public abstract void swimming();
}

有且只能有一个抽象方法

在这里插入图片描述

Lambda表达式的省略写法;
以下三种的写法都是可以的;

/*** lambda的省略规则:* 1. 参数类型可以省略不写* 2. 如果只有一个参数,参数类型可以省略,同时()也可以省略* 3. 如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,并且是需要同时省略*/
Integer[] arr = {2, 3, 1, 5, 6, 7, 8, 4, 9};
Arrays.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}
});
// Lambda表达式
Arrays.sort(arr, (Integer o1, Integer o2) -> {return o1 - o2;}
);
// Lambda表达式省略写法(代码阅读性较差)
Arrays.sort(arr, (o1, o2) -> o1 - o2);System.out.println(Arrays.toString(arr));

在这里插入图片描述

String[] arr = {"abc", "bcd", "ab", "a", "apple"};
Arrays.sort(arr, (o1, o2) -> o1.length() - o2.length());
System.out.println(Arrays.toString(arr));

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter学习四:Flutter开发基础(一)Widget

目录 0 引言 1 Widget 简介 1.1 Widget 概念 1.2 Widget 接口 1.3 Flutter中的四棵树 1.4 StatelessWidget 1.4.1 简介 1.4.2 Context上下文 1.5 StatefulWidget 1.6 State 1.6.1 简介 1.6.2 State生命周期 1.7 在 widget 树中获取State对象 1.7.1 通过Context…

360T7路由器进行WiFi无线中继教程

360T7路由器进行WiFi中继教程 1. 概述2. 360T7路由器进行WiFi中继实现教程2.1 登录路由器管理界面2.2 选择上网方式2.3 搜索WiFi2.4 连接WiFi2.5 点击确认2.6 在主页面查看网络 1. 概述 中继路由系统由一组中继路由器组成&#xff0c;为不能交换路由信息的路由域提供中继路由。…

人工智能(AI)在金融行业的应用

人工智能&#xff08;AI&#xff09;技术在金融行业的应用日益广泛&#xff0c;为金融机构提供了更高效、更智能的解决方案。以下和大家分享AI在金融行业的一些主要应用&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0…

PHP的pack/unpack

前言&#xff1a;直接参照官网。 PHP: pack - Manual PHP中文手册 PHP中国镜像 php 国内镜像 PHP官方网站 PHP: unpack - Manual PHP中文手册 PHP中国镜像 php 国内镜像 PHP官方网站 1、作用 &#xff08;1&#xff09;pack&#xff1a;将数据打包成二进制字符串。将输入数据…

区块链基础之密码学及安全技术

1.2 密码学及安全技术 1.2.1 密码学知识 1.2.1.1 Hash函数 Hash(哈希) 哈希函数是一类数学函数&#xff0c;可以在有限合理的时间内&#xff0c;将任意长度的消息压缩为 固定长度的输出值&#xff0c;并且是不可逆的。其输出值称为哈希值&#xff0c;也称为散列值。 哈希算法…

Vue.js中的状态管理:理解和使用Vuex

目录 前言 Vue.js 样式绑定 Vue.js class class 属性绑定 实例 1 实例 2 实例 3 实例 4 数组语法 实例 5 实例 6 Vue.js style(内联样式) 实例 7 实例 8 实例 9 Vue.js 组件 全局组件 全局组件实例 局部组件 局部组件实例 Prop Prop 实例 动态 Prop Pro…

Linux基础服务4——ftp

文章目录 一、基本了解1.1 C/S型架构1.2 数据连接模式1.3 用户认证 二、安装服务端2.1 安装vsftpd2.2 配置文件2.3 主配置文件参数2.4 windows访问服务端2.4.1 系统用户访问2.4.2 匿名用户访问2.4.2 开启客户端上传权限2.4.3 开启客户端其他权限2.4.4 开启客户端删除、修改权限…

大数据赋能交通业务管理——远眺智慧交通集成管控系统

随着交通管理需求的不断提升&#xff0c;原有系统管理模式的缺点逐渐显露&#xff0c;各业务系统的相互独立、各自为战&#xff0c;成为交通管理人员全局把控交通资源、实现交通综合管控的壁垒。 智慧交通集成管控平台通过统一标准&#xff0c;集成交警各类业务系统、整合相关数…

解决JD-GUI-1.6.6 中文乱码

解决JD-GUI-1.6.6 中文乱码 原因解决办法的方式一解决办法的方式二最终版 原因 在拖入java文件进行反编译时候发现中文出现了乱码。 g) 解决办法的方式一 值得注意的是&#xff1a;这种方式只能每次输入命令才弹出jd-gui窗口才能不能乱码 每次打开powershell并输入这一串命…

LeetCode 0002. 两数相加

【LetMeFly】2.两数相加 力扣题目链接&#xff1a;https://leetcode.cn/problems/add-two-numbers/ 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff…

SpringBoot3之GraalVM之Windows详细安装及使用教程

配置Maven环境变量 我直接使用的是IDEA plugins文件夹下的maven 新建MAVEN_HOME环境变量 Path环境变量追加 %MAVEN_HOME%\bin安装Visual Studio Community 因为GraalVM需要调用操作系统的底层工具&#xff0c;而Windows底层工具是VisualStudio&#xff0c;所以我们要先下载…

LabVIEW开发光线追踪可视化分段反射器测试台

LabVIEW开发光线追踪可视化分段反射器测试台 为了满足美国国家航空航天局&#xff08;NASA&#xff09;对未来望远镜的要求&#xff0c;新的红外空间天文台将在哈勃太空望远镜使用寿命结束后取代其。作为HST的继任者&#xff0c;詹姆斯韦伯太空望远镜&#xff08;JWST&#xf…