Java1.8新特性之流式计算

本文详细介绍了Java 1.8中的重要新特性,包括lambda表达式的概念及其组成,如何利用函数式接口如Consumer、Function和Predicate进行编程,以及函数式编程的应用。此外,还探讨了流计算的优势,通过简洁的代码实现复杂的集合操作,以及Java双冒号运算符的各种用法,如静态方法、实例方法、超类方法引用和构造器引用。
摘要由CSDN通过智能技术生成

一、lambda表达式

lambda表达式本质上是一个匿名方法。

注:匿名方法时没有方法名的方法,如

{
    System.out.println("这是一个匿名方法");
}

组成:参数列表、箭头、表达式或语句块。

二、函数式接口

只包含一个抽象方法的接口。

Java函数式接口:

java.util.function.Consumer,包含有一个有输入而无输出的accept接口方法。还有一个andThen方法,指定在调用当前Consumer后是否还要调用其它的Consumer方法。

//定义第一个Consumer
Consumer<Integer> consumer1 = (param) -> {System.out.println(param);};
//定义第二个Consumer
Consumer<Integer> consumer2 = (param) -> {System.out.println(param*param)};

consumer1.accept(5); //打印出5

//consumer1调用consumer2
consumer.andTher(consumer2).accept(5); //打印出 5 25 

java.util.function.Function,接受一个参数并生成结果,方法有apply、compose、andThen、indentify。

java.util.function.Predicate,包含一个test方法,根据输入值做逻辑判断,其结果为true或者false。

三、函数式编程

实例化对象时,如果使用lambda表达式重写类中的方法,称为函数式编程。

四、流计算

需要多行代码完成的集合操作,借助于流式处理可以在一行中实现。

流式数据具体可看https://blog.csdn.net/canot/article/details/52957262

Java双冒号(::)运算符的使用:

静态方法引用(static method)语法:classname::methodname 例如:Person::getAge
对象的实例方法引用语法:instancename::methodname 例如:System.out::println
对象的超类方法引用语法: super::methodname
类构造器引用语法: classname::new 例如:ArrayList::new
数组构造器引用语法: typename[]::new 例如: String[]:new

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值