java 8 之前没有函数式编程的能力,之前为了传入一个函数,我们必须传入一个内部类。繁琐,且不必要。

java 8 之后,我们可以用lambda表达式来取代内部类。还可以将函数视为参数传入。自此,java有了函数式编程的能力。

为了支持lambda表达式,java8 还引入了函数式接口和接口默认函数。

1,

lambda表达式是什么。

lambda表达式形式为:(paramter) ->  {expression}

当paramter只为一个时,可省略()

当expression只有一个时,可省略{} 和return语句。

另外,paramter可省略参数类型。

2,

函数式接口就是只有包含一个函数的接口。

对于这样的接口,可以用lambda表达式来创建具体实现。

另外为了向后兼容,java 8 规定,接口可以拥有默认函数的实现。

比如List/Collection在java 8 之后拥有了foreach默认方法及实现。

3,

java 8 还引入了Stream API(java.util.stream),通过Stream API 我们可以使用函数式编程的方法来

操纵Collections, Arrays, or I/O resources。Stream常用的方法有,map, filter, collect等。