Java lambda表达式
来源:互联网 发布:c语言笔试题大一带答案 编辑:程序博客网 时间:2024/06/06 08:25
lambda表达式
lambda表达式是一种只拥有一个函数式接口的方法的叫法,可以简化封装。函数式接口
在lisp这样的函数式编辑语言中,可以简单地把函数
当作参数传递。在java中,由于函数不是对象,故不能直接当作参数传递。但可以通过函数式接口实现函数传递。ps. 函数式接口只拥有一个抽象方法的接口package foo;public interface Func { public double apply(double x);}
函数式接口的封装
- 截止java7,对抽象方法进行
override
Func g = new Func(){ @Override public double apply(double x) { return x * x; }};
- 在java8,上面的代码可以简写成如下
Func f = x -> x * x;
或者Func f = (x) -> {return x * x;};
基本写法 (参数1, 参数2, ...) -> {处理1; 处理2; ...}可以不传递参数,空处理也可以写成 () -> {}通过函数式接口可以将原来override
的方法简单地实现出来。下面让我们通过例子来了解函数式接口的真正威力。package foo;public class FuncUser { public static void samplePrintFunc(Func f) { for(double x = 1.0; x <= 3.0; x += 1.0) { System.out.println(f.apply(x)); } }}
可以简单写成FuncUser.samplePrintFunc(x -> x * x);
也可以换成别的处理逻辑FuncUser.samplePrintFunc(x -> Math.sin(x));
稍微复杂的逻辑时FuncUser.samplePrintFunc(x -> { a = Math.sin(x); b = Math.cos(x); return a * b; });
当函数式接口的参数类型和方法的参数相同时,连参数也可以省略掉,简写如下原: FuncUser.samplePrintFunc(x -> Math.sin(x));简写后: FuncUser.samplePrintFunc(Math::sin);
以上就是lambda函数式将函数
作为参数传递的强力写法。查看原文:https://www.huuinn.com/archives/319
更多技术干货:风匀坊
关注公众号:风匀坊
阅读全文
0 0
- Java Lambda表达式入门
- Java 8 lambda表达式
- Java Lambda表达式入门
- java之Lambda表达式
- Java Lambda表达式例子
- Java Lambda表达式入门
- Java- Lambda表达式
- Java Lambda表达式入门
- Java Lambda表达式入门
- Java lambda表达式初探
- JAVA Lambda表达式教程
- Java Lambda表达式
- java中的->:Lambda表达式
- Java之lambda表达式
- Java Lambda表达式入门
- Java Lambda表达式
- java lambda表达式
- Java Lambda表达式入门
- IDEA怎样使用git将项目上传到github中
- 基于CentOS搭建Postfix、Dovecot邮件服务
- 删除一个目录中文件的文件名中华特定的字符串
- (学习java)双向循环链表
- mybatis动态sql注解in传输列表解决办法
- Java lambda表达式
- Stream I/O and Files
- [opencv][python][scikit-learn]att_faces数据人脸识别
- Bad Hair Day
- Div+css-1
- 进程间通信----管道
- 设计模式---观察者模式
- 1023. 组个最小数 (20)
- NOIP2017模拟赛 【HNOI2010】弹飞绵羊(分块)