二、Lambda表达式
来源:互联网 发布:网络理财可靠吗 编辑:程序博客网 时间:2024/06/05 03:44
Java 8新特性.个人感觉能减少不少没必要的格式代码.可以理解为匿名函数
- Lambda
- lambda好处
- bad code
- lambda code
- Lambda语法
- Lambda 表达式的结构
- Lambda使用日常
- Runnable函数赋值
- List遍历
- Android OnclickListener
- Map
- Lambda动手写
- Android添加Lambda支持
- lambda好处
Lambda
lambda好处
bad code
Runnable r1 = new Runnable(){ @Override public void run(){ System.out.println("Hello world one!"); } };
lambda code
Runnable r2 = () -> System.out.println("Hello world two!");
昂。其实还有很多,后面我会给大家都列上.接下来我给大家介绍基础
Lambda语法
(param,param,....)->{ body }
举个栗子:
(int a, int b) -> { return a + b; }
Lambda 表达式的结构
- 让我们了解一下 Lambda 表达式的结构。
- 一个 Lambda 表达式可以有零个或多个参数
参数的类型既可以明确声明,也可以根据上下文来推断。例如:(int a)与(a)效果相同 - 所有参数需包含在圆括号内,参数之间用逗号相隔。例如:(a, b) 或 (int a, int b) 或 (String a, int b, float c)
空圆括号代表参数集为空。例如:() -> 42
当只有一个参数,且其类型可推导时,圆括号()可省略。例如:a -> return a*a - Lambda 表达式的主体可包含零条或多条语句
- 如果 Lambda 表达式的主体只有一条语句,花括号{}可省略。匿名函数的返回类型与该主体表达式一致
如果 Lambda 表达式的主体包含一条以上语句,则表达式必须包含在花括号{}中(形成代码块)。匿名函数的返回类型与代码块的返回类型一致,若没有返回则为空
Lambda使用日常
Runnable函数赋值
//基础版本Runnable r1 = new Runnable(){ @Override public void run(){ System.out.println("Hello world one!"); } };//lambda版本Runnable r2 = () -> System.out.println("Hello world two!");
List遍历
//Old way:List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);for(Integer n: list) { System.out.println(n);}//New way:List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);list.forEach(n -> System.out.println(n));
Android OnclickListener
//之前的写法btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("hello lambda"); ... }});//Lambda表达式写法btn.setsetOnClickListener((View v) -> { System.out.println("hello lambda"); ... });
Map
map.forEach((key, value) -> { System.out.println("Key : " + key + " Value : " + value);});
Lambda动手写
函数名返回值去掉.用 ()->{}代替参数放进().body放进{}.返回值自动 口诀参小体中返自动....(我自己总结的..)
Android添加Lambda支持
buildscript { repositories { mavenCentral() } dependencies { classpath 'me.tatarka:gradle-retrolambda:2.2.2' }}// Required because retrolambda is on maven centralrepositories { mavenCentral()}apply plugin: 'com.android.application' //or apply plugin: 'java'apply plugin: 'retrolambda'android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }}
本文引用了以下博客
http://blog.csdn.net/xieyupeng520/article/details/47804481
http://news.oneapm.com/java-8-oneapm-lambda/
0 0
- Lambda表达式二
- 二、Lambda表达式
- Lambda 表达式(二)-码住
- java8 lambda表达式详解(二)
- lambda表达式学习笔记二
- java8实战二:Lambda 表达式
- Java表达式之Lambda表达式(二)
- Lambda表达式的初识(二)
- 对lambda表达式的解析(二)
- Jdk8之lambda表达式的使用(二)
- 快乐的Lambda表达式(二)
- java8新特性之lambda表达式(二)
- java8新特性(二):Lambda表达式
- c#委托和lambda表达式(二)
- Jdk8之lambda表达式的使用(二)
- Java新特性之二Lambda表达式
- (二)Java8之Lambda表达式
- java1.8 lambda表达式语法(二)
- 【Light】[1297]Largest Box
- MySQL数据库float数据类型
- jQuery效果
- 配置log4j日志动态加载(不重启服务)
- Oracle中union和union all的区别
- 二、Lambda表达式
- 数据结构_9:位算法
- Picasso的使用
- Hirschberg's algorithm to find string alignment
- Python 基础之字符串(不可变数据类型)
- (loadrunner 三)脚本录制之关联&cookie
- 5.1 前馈神经网络
- Laravel 5.2 session失效不起作用(无法将Session存入Redis中)的解决方案
- JSF1063:警告!将不可序列化属性值设置为 HttpSession(密钥:{0},值类:{1})。