Lambda FAQ_2.为什么在Java中加入Lambda表达式?
来源:互联网 发布:旅游景点介绍软件 编辑:程序博客网 时间:2024/05/21 22:32
为什么在Java中加入Lambda表达式?
Lambda表达式(和闭包)在许多现代编程语言中都是一个很普及的特性。在为什么把Lambda表达式加入Java平台的众多原因中,最有说服力的原因之一是使用多线程对集合类的分布式处理变得容易了。目前,list和set被操作的典型场景是客户端获取迭代器(iterator),然后通过迭代器取出每个元素并处理。如果不同元素的处理需要改为并行方式,这只能由客户端的代码来负责,而不是管理元素的集合类。
在Java8中,意图是提供集合能够使用的函数并用此函数以不同的方式处理每一个元素(我们将会展示一个示例,这个示例使用一个非常简单的方法foreach处理每个元素)。这个改变带来的优势是集合现在能够在内部组织对集合自身的迭代,将并行的责任从客户代码转移到库代码上。
然而,对于客户端代码来说要使用这种优势,必须以一种简单的方式提供一个函数给集合方法。目前标准的方式是实现合适接口的匿名类。但是定义匿名内部类的语法对于这个目的而言太笨拙。
例如,集合上的forEach方法接受consumer接口的实例,并且为每个元素调用示例的accept方法:
interface Consumer<T> {void accept(T t);}
假设有一个集合,集合元素类型是java.awt.Point,我们想要使用**forEach**方法来交换每个元素的x和y的值。使用匿名内部类实现**Consumer**接口传入一个转换函数的方式如下:
pointList.forEach(new Consumer<Point>(){ public void accept(Point p){ p.move(p.y, p.x); }});
但是使用lambda表达式可以很简洁的达到同样的效果:
pointList.forEach(p -> p.move(p.y, p.x));
原文地址
原文地址
0 0
- Lambda FAQ_2.为什么在Java中加入Lambda表达式?
- JAVA 中Lambda表达式
- java 8中lambda表达式
- 为什么Java要增加lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- 在 Eclipse IDE 中试用 Lambda 表达式 Java
- 在Android中使用Java 8的lambda表达式
- 在Java中使用Lambda表达式统计词频
- 在Java中使用Lambda表达式的技巧
- C++ AMP: 在C++中Lambda表达式
- 在查询中使用 Lambda 表达式
- 在AndroidStudio中使用Lambda表达式
- 如何在AS中使用lambda表达式
- Android启动过程中背景图片显示
- 配置HANA DS将ECC元数据导入
- ECMAScript 6,令Node.js也可以写出同步执行的代码(上)
- HDU - 1541 Stars
- 2014年中国门业行业年会观点精彩纪实
- Lambda FAQ_2.为什么在Java中加入Lambda表达式?
- JQuery实现页面跳转
- web消息推送技术
- WINXP下欣技8000的编译环境配置
- 汇编里用到的常用寄存器
- ImageButton背景透明(没有按钮框)以及自定义不同状态样式,自定义背景
- Android手机 Fildder真机抓包
- 黑马程序员 - SAX与DOM解析XML的区别
- XCode工程中关于Targets的介绍