惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog RSS Feed
宝玉的分享
宝玉的分享
腾讯CDC
博客园_首页
T
Tailwind CSS Blog
月光博客
月光博客
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
SecWiki News
SecWiki News
美团技术团队
P
Privacy International News Feed
H
Help Net Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
Know Your Adversary
Know Your Adversary
Y
Y Combinator Blog
D
DataBreaches.Net
Project Zero
Project Zero
T
The Blog of Author Tim Ferriss
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
S
Schneier on Security
G
GRAHAM CLULEY
博客园 - 三生石上(FineUI控件)
Cisco Talos Blog
Cisco Talos Blog
小众软件
小众软件
Forbes - Security
Forbes - Security
D
Docker
T
Tenable Blog
S
Secure Thoughts
雷峰网
雷峰网
S
Security @ Cisco Blogs
T
The Exploit Database - CXSecurity.com
The Cloudflare Blog
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
阮一峰的网络日志
阮一峰的网络日志

博客园 - 轻舟软件

轻舟分公司协作平台:统一管理、高效协作 [ERR] 1118 - Row size too large (> 8126) IDEA中Java代码修改后及时生效的方法 python SQLite 访问组件 AI课堂笔记:AI编程 轻舟项目管理系统:台账・文件・协作・管控,让项目告别混乱,有序可控! 分公司项目的柔性管理(造价咨询、招标代理) 咨询行业——项目费用管控 咨询行业——项目管理模型 Java知识图谱(转) 简约至上 软件需求分析方法论(转) EasyUI的属性、事件、方法的使用 两位小数偶感 什么是函数? HQL分页查询、分组查询 MySql 、Oracle 获取表结构和字段信息 马云卸任演讲全文(2019-09-10) MySQL权限管理常用命令
Java8:函数式接口、Lambda、Stream
轻舟软件 · 2022-05-30 · via 博客园 - 轻舟软件

函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。

java.util.function 它包含了很多接口,用来支持 Java的函数式编程。
该包下有四大类函数式接口:Supplier、Consumer、Predicate、Funcation。
Supplier(供给型):无参,有返回值(泛型对象)。
Consumer(消费型):有参(泛型对象),无返回值。
Predicate(断言型):有参(泛型对象),有返回值(布尔)。
Funcation(方法型):有参(泛型对象),有返回值(泛型对象)。

函数的具体实现则由调用者来实现,这就是函数式接口的意义所在。

 ------------------------------------------------------------------------------------------

Lambda表达式来表示函数式接口的一个实现。(注:JAVA 8 之前一般是用匿名类实现的)

Lambda表达式的重要特征:
(1)可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
(2)可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
(3)可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
(4)可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。

------------------------------------------------------------------------------------------

函数式接口 是 Lambda 的基础。
Lambda 是 Stream API 的基础。
Stream API 是一种高效且易于使用的处理数据的方式。
使用 Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询

我们很少去定义一个方法,方法参数包含函数接口。
我们更重要的是学会使用 JDk8 中带有函数式接口参数的方法,来简化我们的代码。

 ------------------------------------------------------------------------------------------

参考:
Java 8 函数式接口
https://www.runoob.com/java/java8-functional-interfaces.html
https://my.oschina.net/mdxlcj/blog/4819554
https://mp.weixin.qq.com/s/JGI9eAgjus-XoY-40z7DkQ

Java Lambda 表达式
https://www.runoob.com/java/java8-lambda-expressions.html

玩转Java8 Stream
https://mp.weixin.qq.com/s/477FjfZOp2_gY48kRav1fg

JDK8 新特性详解
https://my.oschina.net/mdxlcj/blog/1622718
https://my.oschina.net/mdxlcj?tab=newest&catalogId=6361172