2021.07.26

Lambda
1.1概述
Lambda表达式是一种没有名字的函数,也可以称为闭包,是Java8发布的最重要的新特性。本质上是一段匿名内部类,也可以是一段传递的代码。还有叫箭头函数的
1.2优点
是匿名内部类的简写方式是代码更加简洁。
1.3和匿名内部类对比
1.4语法结构
(参数,参数,参数…)–>{方法体}
1.无参和多参,小括号必须写
2.只有一个参数的时候,小括号可以不写
3.如果只有一条语句,大括号也可以不写,并且语句结尾不需要写分号。
4.如果只有一条语句,并且也是返回值语句的话,return也要省略
5.如果是多条语句,必须加{},就是整成编码,该写分号写分号,该写return写return。
函数式接口
2.1概述
英文称为FunctionalInterface
其本质是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
核心目的是给Lambda表达式的使用提供更好的支持,进一步达到函数式变成的目标,可通过运用函数式编程 极大的提高爱编程效率。
其可以被隐式转换为Lambda表达式
2.2特点
函数式接口是仅制定一个抽象方法的接口。
可以包含一个或多个静态或默认方法
专用注解即@FunctionalInterface,检查他是否是一个函数式接口,也可以不添加该注解。
如果有两个或以上抽象方法,就不能当成函数式接口去使用,也不能添加@FunctionalInterface,这个注解
如果只有一个抽象方法,那么@FunctionalInterface注解加不加都可以当作函数式接口去使用。
2.4jdk自带的函数式接口
Supplier 表示供应商,有get方法,无参有返回值,一般用于获取数据
Consumer 表示消费者,accept,有参无返回值
Function,函数操作,apply,有参有返回值
Predicate 断言,用于做判断校验操作,test需要传入参数并返回Boolean类型
3.方法,构造器,数组
4.Stream API
概述
数据渠道、管道,用于操作数据源(集合,数组等)所生成的元素序列
集合讲的是数据。流讲的是计算
即 一组用来处理的数组,集合的API
特点
Stream,不是数据结构,没有内部存储,自己不会存储元素
Stream,不会改变源对象。相反,他们会返回一个持有结果的新的Stream
Stream,操作是延迟执行的,这意味着他们会等到需要结果的时候才执行
不支持索引访问
延迟计算
支持并行
很容易生成数据或集合
支持过滤,查找,转换,汇总,聚合等操作
4.3应用场景
流式计算处理,需要延迟计算、更方便的并行计算
更灵活、简洁的集合处理返回时场景
4.4创建流的五种方式
1.数组Stream of
2.通过集合
3.通过Stream.generate来创建
4.通过Stream.iterate来创建
5.通过已有API
4.5转换子
转换子,又称为中间操作,所有的转换子得到的都是一个新的流,所以一般用于链式调用。
常用转换子
Limit;取集合中的前几条数据
Filter;对元素进行过滤筛选,不符合条件的就不要了
Distinct:去除重复
Skip;跳过
Map;更改操作
Sorted;排序
注意,只有转换子,是不执行的,必须执行动作才会真正执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值