java中的lambda表达式学习
Lambda表达式是给函数式接口(SAM接口)的变量或形参赋值的表达式。
Lambda表达式替代了原来使用匿名内部类的对象给函数式接口(SAM接口)的变量或形参赋值的形式。
java提供了大量的函数式接口,在java.util.function包中,一般包含四大类:
1、消费型接口:Consumer<T> : void accept(T t);
2、供给型接口:Supplier<T> : T get();
3、判断型接口:Predication<T> : boolean test(T t);
4、功能型接口:Function<T, R> : R apply(T t);
自定义函数式接口,使用@FunctionalInterface注解。
Lambda表达式语法格式:
(形参列表) -> {Lambda体}:
(1)(形参列表)就是SAM接口的抽象方法的形参列表
(2){Lambda体}就是实现SAM接口的抽象方法的方法体
(3)->称为Lambda操作符,由“减号”和“大于号”构成,中间不能有空格
简化:
(1)如果{Lambda体}只有一句语句,可以省略{}以及{}中的语句的结束;,如果{}没有省略的话,;就不能省略
(2)如果(形参列表)中形参的类型是已知的,获取可以推断,那么数据类型可以省略
(3)如果(形参列表)只有一个形参,并且数据类型也已经省略了,那么这个()可以省略了,如果数据类型没有省略,()不能省略
(4)如果{Lambda体}只有一句语句,并且是一个return语句,那么可以省略{}以及{}中的语句的结束;还有return。
(5)如果没有形参,()不能省略
简单lambda示例:
new Thread(() -> {System.out.println("lambda测试");}).start();-> 简化(只有一个语句,可以去掉大括号和分号):new Thread(() -> System.out.println("lambda测试")).start();
Connection的forEach(Consumer<T> c)方法:
List<Integer> list = Arrays.asList(1,2,3,4,5); =》list.forEach(num -> System.out.println(num));
java中的lambda表达式学习相关推荐
- 如何开始使用Java中的Lambda表达式
by Luis Santiago 路易斯·圣地亚哥(Luis Santiago) 如何开始使用Java中的Lambda表达式 (How to start working with Lambda Exp ...
- 如何在Java中使用Lambda表达式
如何在Java中使用Lambda表达式 Lambda表达式是Java 8新增的一个非常强大的特性.它使得函数式编程在Java中变得更加容易和直观. Lambda表达式的基础知识 在Java中,Lamb ...
- Java中的lambda表达式如何理解——精简
✌️✌️✌️在写之前,我在考虑是否要写这篇文章,然而当我查阅"lambda表达式"的相关内容的时候,我发现大量的文章都出现了冗余的现象,文章的篇幅过于夸张,严重影响了大家阅读的兴趣 ...
- 通俗理解Java中的Lambda表达式
Lambda Lambda表达式支持将代码块作为方法参数, 允许使用更为简洁的方式实现抽象类或接口的抽象方法, 而不再是通过匿名内部类的方式, 它具有对某一方法重写或实现的功能; 接下来通过一个简单的 ...
- java lambda max_在Java中使用Lambda表达式查找Max
小编典典 该方法Comparator.comparing(-)旨在创建一个Comparator使用基于对象属性的订单进行比较的.当使用lambda表达式i -> i(这是(int i) -> ...
- 【java】理解和运用Java中的Lambda
1.概述 转载:理解和运用Java中的Lambda 前提 回想一下,JDK8是2014年发布正式版的,到现在为(2020-02-08)止已经过去了5年多.JDK8引入的两个比较强大的新特性是Lambd ...
- JAVA如何遍历arraylist数组,Java 程序使用Lambda表达式遍历ArrayList
Java 程序使用Lambda表达式遍历ArrayList 在此示例中,我们将学习在Java中使用lambda表达式遍历数组列表的每个元素. 要理解此示例,您应该了解以下Java编程主题: 示例:将A ...
- Java 8:在新的Nashorn JS引擎中编译Lambda表达式
在最近的一篇文章中,我了解了Java 8和Scala如何实现Lambda表达式. 众所周知,Java 8不仅引入了对Javac编译器的改进,而且还引入了全新的解决方案-Nashorn. 这个新引擎旨在 ...
- Java 8中使用Lambda表达式的策略模式
策略模式是" 设计模式:可重用对象的元素"书中的模式之一 . 本书所述的策略模式的意图是: 定义一系列算法,封装每个算法,并使它们可互换. 策略使算法独立于使用该算法的客户端而变化 ...
最新文章
- RocketMQ命令整理
- mysql 按照指定字段拼接_mysql 根据某个字段将多条记录的某个字段拼接成一个字段...
- hibernate配置详情3(Dept)
- winfrom导出DataGridView为Excel方法
- linux php 执行python,Linux(Ubuntu)下php使用exec调用python程序返回json数据
- linux版本fedora,技术|初级:如何更新 Fedora Linux 系统
- centos vsftp mysql_CentOS6.4 实现基于mysql的vsftpd
- html离线地图,离线地图三维开发-添加HTML
- oc代码混淆_OC代码混淆工具
- 控制图的绘制步骤_实战!脚手架排布图绘制步骤和技巧讲解!图文展示
- linux集群之LVS入门和企业级实战(续一)
- 关于前端浏览器 IE6bug 解决方案
- python窗口大小动态变化_python – 如何让tkinter画布动态调整窗口宽度?
- Node.js:使用blueimp-md5进行MD5加密
- [原创]CI持续集成系统环境---部署Jenkins完整记录
- Oracle 学习资料
- IAR for MSP430安装教程
- 多目标优化_学习笔记(三)MOEA/D
- 嵌入式、单片机之间的区别
- QuantumultX 初学者傻瓜教程