我们正处于一个信息大暴发的时代,每天都能产生数以百万计的新闻资讯!
虽然有大数据推荐,但面对海量数据,通过我们的调研发现,在一个小时的时间里,您通常无法真正有效地获取您感兴趣的资讯!
头条新闻资讯订阅,旨在帮助您收集感兴趣的资讯内容,并且在第一时间通知到您。可以有效节约您获取资讯的时间,避免错过一些关键信息。
Lambada表达式与高阶函数
耿祥义
1. Lambada表达式
下列computeSum是一个通常的方法(也称函数):intcomputeSum( inta, intb ) { returna+b; }
Lambda表达式就是一个匿名方法(函数),用Lambda表达式表达同样功能的匿名方法是:(int a,int b) -> {return a+b;}
或(a,b) -> {return a+b;}
即Lambda表达式就是只写参数列表和方法体的匿名方法(参数列表和方法体之间的符号是->):(参数列表)-> {方法体}
●Lambada表达式的值
Lambda表达式的值就是它表示的 匿名方法的入口地址。不要混淆Lambda表达式的值和Lambda表达式代表的匿名方法的返回类型,Lambda表达式代表的匿名方法的返回类型可以是Java允许的任何类型,比如void型,基本类型或引用类型(如,类,接口等类型)。
2.Function
Function
函数f或g通过调用apply(T)(Function
f.apply(3)得到的值是9.0 g.apply(5) 在命令行输出13
3.高阶函数与compose方法
可以使用compose方法实现匿名方法的复合,即得到所谓的高阶函数(函数式编程的重要手段)
返回一个组合函数,参数before函数的返回值作为实参,赋值给当前函数的参数,当前函数的返回类型是组合函数的返回类型。
例如:Function
当前函数f与函数 g得到复合函数 hFunction
得到的复合函数h就是 (Integer x){return (double)(x+1)*(x+1);}
h.apply(2)得到的返回值是9.0
●下列程序显示了Function
import java.util.function. Function; publicclassE1{ publicstaticvoid main(String args[]) { Function< Integer, Double> fOne= (Integer a)-> { return(double)a*a;}; System.out.println(fOne.apply( 3)); //输出:9.0Function< Void, Void> fTwo= (Void v)-> { System.out.println( "你好"); returnnull;}; //无参数,返回类型是voidfTwo.apply( null); //命令行输出:你好Function< Integer, Void> fThree= (Integer a)-> { System.out.println(a+ 8); returnnull;}; fThree.apply( 5); //命令行输出:13Function< Integer, Double> f= (Integer a)-> { return(double)a*a;}; Function< Integer, Integer> g= (Integer x)-> { returnx+ 1;}; Function< Integer, Double> h= f. compose(g); System.out.println(h.apply( 5)); //输出:36.0
}}
4. 无限分式
形如(a是正整数)
a/a+(a/(a+(a/a+(a/a+….
称为无限分式,无限分式的值是无理数。当a等于1时,无限分式是黄金分割数(0.618...)如图所示意。
在这里,我们用Lambda表达式计算无限分式的近似值(学习循环语句时,可以用循环语句来求无限分式的近似值),例如,Function< Double, Double> f= (x)-> { return1/(1+x);}
然后通过f的高级函数,即f不断的复合自己得到的函数来计算无限分式的近似值。
●程序与运行效果import java.util.function.Function;public class E2 {public static void main(String args[]) {Function
返回搜狐,查看更多
责任编辑:
以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。
快照生成时间:2023-01-31 10:45:14
本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。
信息原文地址: