关于java8新特性,Lambda表达式简单使用

为什么使用Lambda表达式

Lambda是一个匿名函数,我们可以把Lambda表达式理解为一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁,更灵活的代码

匿名内部类和Lambda表达式

在这里插入图片描述在匿名内部类中,其实有用的代码也是我们需要的代码其实就只有一句,其他的代码都是为了写那一句而写,所以在Java8的新特性中,出现了Lambda表达式,一句代码就可以实现,避免写多余代码,使我们的代码更简洁

Lambda表达式的基础语法

java8中引入了一个一个新的操作符"->",该操作符称为箭头操作符或者Lambda操作符,Lambda操作符将Lambda表达式拆分成为左右两部分
左侧:Lambda表达式的参数列表
右侧:Lambda表达式中所需执行的功能,即Lambda体

语法格式

一、无参数,无返回值
在这里插入图片描述
在java中正好Runnable接口中的run方法无参,无返回值
在这里插入图片描述
运行结果

在这里插入图片描述
二、一个参数,无返回值。
在这里插入图片描述
若参数只有一个那么箭头操作符左边的参数列表不用写小括号
在这里插入图片描述

运行结果
在这里插入图片描述
三、有多个参数,有返回值,Lambda体中有多条语句
在这里插入图片描述
Lambda体中若有多条语句,则需要用大括号括起来

四、有多个参数,有返回值,Lambda体中只有一条return语句,那么大括号和return都可以不写
在这里插入图片描述
Lambda体则表示了返回的数据
五、Lambda参数列表的数据类型可以省略不写,因为JVM编译器通过上下文推断出数据类型,即”类型推断“

Lambda表达式需要函数式接口的支持

函数式接口:接口中只有一个方法的接口。可以用注解@FunctionalInterface 修饰,因为这个注解修饰的接口必须是函数式接口

四大内置核心函数型接口

Consumer : 消费型接口

	accept(T t);
	传入一个T

在这里插入图片描述

Supplier : 供给型接口

	T get();
	返回一个T

在这里插入图片描述
创建十个0-100的数字放入集合中
运行结果
在这里插入图片描述

Function<T,R> :函数型接口

	R apply(T t);

传入一个T,返回一个R
在这里插入图片描述
运行结果
在这里插入图片描述

Predicate :断言型接口

	boolean test<T t>;
	传入一个T,返回一个布尔值

在这里插入图片描述
在这里插入图片描述
运行结果
在这里插入图片描述

其他接口

在这里插入图片描述

Stream流API的简单使用

用流来进行循环打印
在这里插入图片描述
用流去重后再进行循环打印
在这里插入图片描述
去重后 返回一个新的newList 再进行打印
在这里插入图片描述
直接打印list中有多少个元素
在这里插入图片描述
创建新的Stream,通过Stream来创建
在这里插入图片描述
把数组转换成Stream 然后调用过滤方法 再给预测参数(自动预测类型) 最后过滤计数
在这里插入图片描述
映射
在这里插入图片描述
组合
在这里插入图片描述
join
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值