函数式编程(英语:functional programming)或称函数程序设计,又称泛函编程,是一种编程典范,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且 λ 演算的函数可以接受函数当作输入(引数)和输出(传出值)。
下面列举了 Lambda 表达式的几个最重要的特征:
可选的类型声明:你不用去声明参数的类型。编译器可以从参数的值来推断它是什么类型。
可选的参数周围的括号:你可以不用在括号内声明单个参数。但是对于很多参数的情况,括号是必需的。
可选的大括号:如果表达式体里面只有一个语句,那么你不必用大括号括起来。
可选的返回关键字:如果表达式体只有单个表达式用于值的返回,那么编译器会自动完成这一步。若要指示表达式来返回某个值,则需要使用大括号。
方法引用提供了一个很有用的语义来直接访问类或者实例的已经存在的方法或者构造方法。
方法引用可以通过方法的名字来引用其本身。方法引用是通过 :: 符号(双冒号)来描述的。
它可以用来引用下列类型的方法:
构造器引用。语法是 Class::new,或者更一般的 Class::new,要求构造器方法是没有参数;
静态方法引用。语法是 Class::static_method。
特定类的任意对象方法引用。它的语法是 Class::method。
特定对象的方法引用,它的语法是 instance::method。
在 /home/project/ 目录下新建一个源代码文件 LambdaTest.java,你需要完成以下要求:
建立一个数组 1, 23, 4, 4, 22, 34, 45, 11, 33;
使用 lambda 求出数组中的最小数;
将数组去重,并将去重后数组的每个元素乘以 2,再求出乘以 2 后的数组的和,比如数组 1,2,3,3,去重后为 1,2,3,乘以 2 后为 2,4,6,最后的和为 12。