[FAQ]为什么引入lambda表达式
来源:互联网 发布:淘宝如何返利 编辑:程序博客网 时间:2024/05/21 09:01
Lambda表达式(闭包)在很多现代化的编程语言中很常见。在Java平台上引入lambda表达式的一个最主要原因是方便多线程的处理集合。目前,对于list和set等集合类典型的操作方式是使用迭代器。如果需要并行的处理集合,需要编写客户端代码来处理,而不是集合本身处理。
在Java8中,引入闭包的目的就是为了给集合提供函数式的方法,方便处理。这样所带来的好处是,集合能够自己组织他们的元素,而不需要客户端代码来处理。但是,为了使得客户端代码能够使用这一改进,必须给集合添加函数式方法。当前通用的做法是使用匿名类。但是声明匿名类带来了过多的标准化代码。
举例来说,forEach方法接受一个Consumer接口的实例并为每个元素调用它的accept方法:
interface Consumer<T> { void accept(T t); }
假设我们要使用forEach调换java.awt.Point的集合的每个元素的x与y的坐标。使用Consumer的匿名内部类,我们需要编写类似如下的代码
pointList.forEach(new Consumer() {
public void accept(Point p) {
p.move(p.y, p.x);
}
});
而如果使用lambda表达式,我们只需要这样:
pointList.forEach(p -> p.move(p.y, p.x));
- [FAQ]为什么引入lambda表达式
- Java8为什么引入Lambda表达式
- [FAQ]什么是lambda表达式
- Lambda表达式的引入
- Java8引入的lambda表达式
- AS中引入Lambda表达式
- Android Studio 引入Lambda表达式
- C++11 FAQ中文版:Lambda表达式
- C++11 FAQ中文版:Lambda表达式
- Android开发中如何引入Lambda表达式?
- lambda表达式介绍以及Android Studio引入lambda
- lambda表达式的实质——什么是lambda表达式,为什么要使用lambda表达式
- 为什么Java要增加lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- Java 8为什么需要Lambda表达式
- Hadoop3-分布式文件系统1
- redo文件一
- cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)
- 7月2日
- 单例模式
- [FAQ]为什么引入lambda表达式
- 继承 类的重复定义问题
- ZOJ1004
- Flexviewer两个widget间的如何传值
- 往前走吧,管它未来是什么!!
- 新的开始
- 在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序
- ajax问题
- 加油站