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等。