1.Lambda语法格式
约束条件:只能实现有且只有一个抽象方法的接口,Java称为 函数式接口
public interface MathOperation {
public int operation(int a, int b);
}
public class Java8Tester {
public static void main(String args[]){
// 类型声明
MathOperation addition = (int a, int b) -> a + b;
// 不用类型声明
MathOperation subtraction = (a, b) -> a - b;
// 大括号中的返回语句
MathOperation multiplication = (int a, int b) -> { return a * b; };
// 没有大括号及返回语句
MathOperation division = (int a, int b) -> a / b;
System.out.println("10 + 5 = " + tester.operate(10, 5, addition));
System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction));
System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication));
System.out.println("10 / 5 = " + tester.operate(10, 5, division));
}
}
2.函数式编程
函数式接口:只能实现有且只有一个抽象方法的接口
函数式接口注解:@FunctionalInterface
基于函数式接口并使用Lambda表达式的编程方式
函数式编程理念是将代码作为可重用数据代入程序运行中
函数式编程强调 你想做什么 而不是 你想怎么做
JDK8之后提供了一系列新的函数式接口,位于 java.util.function 包
3.Stream流式处理