码迷,mamicode.com
首页 > 其他好文 > 详细

Lambda表达式

时间:2019-07-17 20:21:47      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:hashmap   速度   表达   导致   基于   java   inf   不容易   for   

Lambda 用在基于方法的 LINQ 查询中

Lambda 表达式无法从封闭方法中直接捕获 ref 或 out 参数。
 
Lambda 表达式中的返回语句不会导致封闭方法返回。
 
Lambda 表达式不能包含其目标位于所包含匿名函数主体外部或内部的 goto 语句、break 语句或 continue 语句。

优点:

1. 简洁。

2. 非常容易并行计算。

3. 可能代表未来的编程趋势。

4. 结合 hashmap 的 computeIfAbsent 方法,递归运算非常快。java有针对递归的专门优化。

缺点:

1. 若不用并行计算,很多时候计算速度没有比传统的 for 循环快。(并行计算有时需要预热才显示出效率优势,并行计算目前对 Collection 类型支持的好,对其他类型支持的一般)

2. 不容易调试。

3. 若其他程序员没有学过 lambda 表达式,代码不容易让其他语言的程序员看懂。

4. 在 lambda 语句中强制类型转换貌似不方便,一定要搞清楚到底是 map 还是 mapToDouble 还是 mapToInt

Lambda表达式的主要作用就是代替匿名内部类的繁琐语法。它由三部分组成。

  • 形参列表:形参列表允许省略形参类型。如果形参列表中只有一个参数,甚至连形参列表的圆括号也可以省略。

  • 箭头->

  • 代码块。如果代码块只包含一条语句,Lambda表达式允许省略代码块的花括号。代码块只有一条return语句,甚至可以省略return 关键字。Lambda表达式需要返回值,而它的代码块中仅有一条省略了return的语句,Lambda表达式会自动返回这条语句的值。

技术图片

 

Lambda表达式

标签:hashmap   速度   表达   导致   基于   java   inf   不容易   for   

原文地址:https://www.cnblogs.com/xllx/p/11203308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!