`
jobar
  • 浏览: 347409 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lambda表达式基础(2)-为什么java要引入Lambda表达式?

 
阅读更多
为什么java要引入Lambda表达式?

在现代许多编程语言中Lambda表达式(闭包)是一个很流行的特性。在Java平台引入lambda的众多原因之中最显著的原因之一是Lambda使得更容易在多线程中分布处理集合。现在,lists和sets典型的处理方式是由客户端代码从集合中获取一个迭代器,然后使用该迭代器依次处理它的元素,如果不同元素的处理要并行进行,那么只能由是客户端代码实现而集合对此无能为力。

在Java8中,目的是,不是要提供给集合这样一些方法,他们有一定的功能且每一个以不同的方式来处理他们的元素。(我们将用一个简单的forEach方法作为例子,这个方法传入一个函数来处理每个元素)。这种变化带来的好处是,集合现在可以组织自己的内部迭代,将并行化的责任从客户端代码转为内部库实现。

然而客户端代码要利用这一点,就需要有一种简单方式来为集合方法提供一个函数。当前标准做法是通过匿名内部类实现相应的接口来实现。但为了达到这一目标,用于定义匿名内部类的语法太笨重而不实用。

例如,在集合中的forEach方法会传入一个Consumer 接口的实例,并为每一个元素调用它的accept方法。
    interface Consumer<T> { void accept(T t); }

假设我们要使用forEach来调换一个java.awt.Point对象列表中的每个元素的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));

原文链接:http://www.lambdafaq.org/why-are-lambda-expressions-being-added-to-java/
分享到:
评论

相关推荐

    Java 8 lambda表达式

    Java 8 的引入,尤其是Lambda表达式,对Java语言产生了深远的影响,它为Java开发者带来了更简洁、更灵活的编程方式。Lambda表达式是函数式编程的核心元素,它允许我们将函数作为方法参数传递,或者将代码块当作数据...

    Java8的lambda表达式

    Java8的Lambda表达式是Java语言的一次重大更新,它引入了函数式编程的概念,极大地简化了处理匿名函数的方式,特别是在处理集合和并发操作时。Lambda表达式使得代码更加简洁、易读,同时也提升了程序的执行效率。在...

    核心基础-利用lambda表达式简化编程-Python实例源码.zip

    本资源"核心基础-利用lambda表达式简化编程-Python实例源码.zip"提供了关于如何使用lambda表达式进行编程的实例源码,涵盖了自动化、数据分析、游戏开发以及网络爬虫等多个应用领域。 首先,我们来深入理解lambda...

    Java:解锁Lambda表达式的魔法-从零开始的函数式编程之旅

    Lambda表达式是Java 8引入的一个重要特性,它为Java带来了函数式编程的能力。在此之前,Java一直被认为是一种纯粹的面向对象编程语言。随着Lambda表达式的加入,Java程序员现在可以享受到函数式编程带来的诸多好处,...

    java8lambda表达式Demo

    Java 8 是一个重要的Java平台版本,因为它引入了许多新特性,其中最显著的就是Lambda表达式。Lambda表达式是函数式编程的关键元素,它允许我们以更简洁、更易读的方式编写代码,特别是在处理集合和并发任务时。在这...

    Lambda表达式--凌尘.pptx

    【Lambda 表达式】是 Java 8 中的一项重大新特性,它引入了一种更为简洁的函数式编程风格。Lambda 表达式本质上是一个没有名字的函数,允许我们将代码作为一个对象进行传递。这种功能使得 Java 的语言表达能力得到...

    java8 lambda表达式学习总结

    1. **类型推断**:Java 8 可以自动推断Lambda表达式的参数类型,因此在许多情况下,我们无需显式声明类型。 2. **捕获外部变量**:Lambda 表达式可以访问和修改其定义范围内的 final 或基本类型的局部变量。 3. **...

    2_Lambda表达式.zip

    Lambda表达式是Java编程语言中的一个关键特性,自Java 8开始引入,它极大地简化了函数式编程,尤其是在处理集合数据时。Lambda表达式的主要目的是为了创建匿名函数,即没有名字的函数,它可以被当作一个值传递给方法...

    一份易上手的C# Lambda表达式入门学习资料

    本文旨在为新手提供易于理解的C# Lambda表达式入门学习资料,帮助读者快速掌握Lambda表达式的基础知识和应用场景。 Lambda表达式是什么? -------------------- Lambda表达式是一种匿名函数,类似于函数式编程的...

    精通lambda表达式: java多核编程

    Lambda表达式是Java 8引入的关键特性之一,它极大地简化了函数式编程,使得Java开发者能够更有效地处理并发问题,从而更好地利用现代计算机的多核处理器资源。 Lambda表达式的核心概念在于它的简洁性和可传递性。它...

    JavaLambda表达式和匿名类.pdf

    Java 8 引入了Lambda表达式,这是对传统编程方式的一大革新,它极大地简化了函数式编程,尤其是在处理集合和并发操作时。Lambda表达式是Java 8中的一种语法糖,它允许开发者以更简洁的方式定义无状态、无副作用的...

    JAVA 8 Lambda表达式-Lambda Expressions.rar

    Java 8 的 Lambda 表达式是 Java 编程语言的重大革新,它引入了一种新的函数式编程概念,使得代码更加简洁、可读性更强。Lambda 表达式允许我们将函数作为一个方法参数,或者把函数作为方法返回值,极大地简化了处理...

    Java8的Lambda表达式

    Java 8引入了Lambda表达式,这是一种简洁的编写代码的方式,可以将代码块作为参数传递给方法,或者作为赋值给变量的对象。Lambda表达式为Java增加了函数式编程的能力,使代码更加简洁和灵活。在Java 8中,Lambda...

    java lambda 表达式(语言篇和类库篇)

    Lambda表达式在Java中被设计为一种匿名函数,可以没有名称地传递,并且可以当作参数或返回值。这种特性在处理高阶函数时特别有用,例如在集合API的流(Stream API)操作中。 **语言篇:** 1. **定义与语法**: Java...

    Lambda表达式的例子

    Lambda表达式是Java 8引入的一种新的编程特性,它极大地简化了函数式编程,并使得代码更加简洁、易读。在Java中,Lambda表达式可以被理解为匿名函数,即没有名字的函数,它可以被当作方法参数传递,或者作为类的成员...

    java8中的Lambda表达式

    Java 8 中的 Lambda 表达式是语言的重大更新,它引入了函数式编程的概念,使得代码更加简洁、易读。Lambda 表达式的主要目的是简化处理匿名内部类的情况,尤其是当这些类只需要一个方法时。 在传统的 Java 编程中,...

    Java lambda表达式和JVM字节码功能详解.pdf

    Java Lambda表达式是Java 8引入的一个重要特性,它极大地简化了函数式编程风格的实现。Lambda表达式允许我们将函数作为一个值传递,就像传递其他数据类型一样。这在处理集合、事件驱动编程以及多线程等场景下尤其...

    将字符串转换为lambda表达式

    首先,我们要理解`lambda`表达式的语法。在Python中,`lambda`关键字后面跟着函数参数,然后是一个冒号和一个表达式。这个表达式的结果就是`lambda`函数的返回值。例如,`lambda x: x + 1`创建了一个接受一个参数`x`...

    Lambda表达式.pdf

    Lambda表达式是Java 8引入的一种简洁的表示可传递的匿名函数的方式。它允许我们将函数作为参数传递给方法,或把代码作为数据处理。Lambda表达式由参数列表、箭头符号“-&gt;”和方法体三部分组成。 2. Java集合框架: ...

Global site tag (gtag.js) - Google Analytics