Code listings for "Using Java 8 Lambda Expressions, Part 2," Java Magazine, March/April 2013 [Listing 1] public default void sort(Comparator<? super E> c) { Collections.<E>sort(this, c); } [Listing 2] List<String> myStrings = getSomeStrings(); String search = getSearchString(); System.out.println(myStrings.stream().filter(s -> s.equals(search)).into(new ArrayList<>())); [Listing 3] stream() filter() map() into() Collection -> Stream -> Stream -> Stream -> Collection [Listing 4] public interface Stream<T> extends BaseStream<T> { Stream<T> filter(Predicate<? super T> predicate); <R> Stream<R> map(Function<? super T, ? extends R> mapper); } [Listing 5] Set<Otter> ots = getOtters(); System.out.println(ots.stream() .filter(o -> !o.isWild()) .map(o -> o.getKeeper()) .filter(k -> k.isFemale()) .into(new ArrayList<>()) .size()); [Listing 6] Set<Otter> ots = getOtters(); Keeper kate = new Keeper(Gender.F); Keeper bob = new Keeper(Gender.M); Otter splash = new Otter(Gender.F); splash.incAge(); splash.setKeeper(kate); ots.add(splash); double aveAge = ((double) ots.stream().map(o -> o.getAge()).reduce(0, (x, y) -> {return x + y;} )) / ots.size(); System.out.println("Average age: "+ aveAge); [Listing 7] ots.stream() .filter(o -> !o.isWild()) .filter(o -> o.getKeeper().equals(kate)) .forEach(o -> o.setKeeper(bob)); Copyright 2013 Oracle Corporation
来自java magazine 2013 四月
简单说下
增加了一个Stream
可以把 集合变为Stream处理(有点类似Iterator)
filter是过滤当前流得到符合条件的对象的流
map是以表达式中返回的对象作为新的流(以上o -> o.getKeeper() 得到的就是Keeper的流)
forEach 按字面意思理解 就是每个流内的对象执行表达式内的操作
相关推荐
Java 1.8引入了lambda表达式,这是Java语言的一项重大改进,显著提升了代码的简洁性和可读性,尤其在处理函数式编程场景时。Lambda表达式是Java 8对函数式接口支持的核心组成部分,它允许我们将代码块视为一种值,...
总结来说,Java 8 的 Lambda 表达式极大地提升了Java的表达力,使得代码更加简洁、易读。通过与Stream API的结合,开发者能够优雅地处理数据集合,提高了程序的可维护性和性能。学习和掌握Lambda表达式是Java 8...
Java 8 是一个重要的Java平台版本,因为它引入了许多新特性,其中最显著的就是Lambda表达式。Lambda表达式是函数式编程的关键元素,它允许我们以更简洁、更易读的方式编写代码,特别是在处理集合和并发任务时。在这...
总结,Java8的Lambda表达式是现代Java开发的重要工具,它为开发者提供了更灵活、简洁的代码实现方式,尤其是在处理集合和并发场景下。熟练掌握Lambda表达式,不仅可以提升代码质量,也能帮助开发者更好地理解和应用...
总之,Java 8的Lambda表达式极大地提升了代码的简洁性和可读性,特别是对于那些需要频繁使用回调函数或处理数据流的场景。通过将函数作为一个对象来传递,Java 8引入了函数式编程的概念,让开发者能以更加优雅的方式...
本源码资源中的示例将演示如何通过Lambda表达式改善代码质量。 3、多线程编程:Lambda表达式在多线程编程中有很好的应用。本源码资源将介绍如何使用Lambda表达式简化线程的创建、同步和并行处理操作。 4、函数式接口...
总的来说,Java Lambda表达式增强了代码的可读性和简洁性,但性能方面需要根据具体应用进行评估。在分析和优化性能时,我们需要全面考虑CPU利用率、I/O延迟、系统吞吐量等多个因素,并可能需要借助各种工具(如...
Java 8 的 Lambda 表达式是 Java 编程语言的重大革新,它引入了一种新的函数式编程概念,使得代码更加简洁、可读性更强。Lambda 表达式允许我们将函数作为一个方法参数,或者把函数作为方法返回值,极大地简化了处理...
在描述中提到的代码示例中,对比了使用匿名类和Lambda表达式实现相同功能的方法。 首先,让我们看看匿名类的使用。在传统的Java编程中,如果需要一个简单的接口实现,我们通常会创建一个新的类来实现这个接口,如`...
Java 8 中的 Lambda 表达式是语言的重大更新,它引入了函数式编程的概念,使得代码更加简洁、易读。Lambda 表达式的主要目的是简化处理匿名内部类的情况,尤其是当这些类只需要一个方法时。 在传统的 Java 编程中,...
Java Lambda表达式的语法通常为 `(参数列表) -> 表达式或代码块`。如果参数类型可以推断,那么参数列表可以省略括号。例如,一个无参数的Lambda表达式可以写作 `() -> System.out.println("Hello, Lambda!")`。 2....
Lambda表达式提供了一种简洁的方式来定义匿名函数,使得代码更加紧凑和易读。下面我们将深入探讨C# Lambda表达式的概念、语法以及常见应用。 ### 1. Lambda表达式简介 Lambda表达式是一种可以没有名字的函数,它...
《精通Lambda表达式:Java多核编程》
Java 8引入了Lambda表达式,这是一种简洁的编写代码的方式,可以将代码块作为参数传递给方法,或者作为赋值给变量的对象。Lambda表达式为Java增加了函数式编程的能力,使代码更加简洁和灵活。在Java 8中,Lambda...
Lambda表达式是Java编程语言中的一个关键特性,自Java 8开始引入,它极大地简化了函数式编程,尤其是在处理集合数据时。Lambda表达式的主要目的是为了创建匿名函数,即没有名字的函数,它可以被当作一个值传递给方法...
在.NET框架中,C#是一种强大的编程语言,它支持Lambda表达式,这使得代码更加简洁、易读。Lambda表达式通常用于LINQ(Language Integrated Query)查询,它允许程序员使用类似SQL的语法在内存中的数据集上进行操作。...
在事件处理中,我们可以使用 Lambda 表达式来简化事件处理代码: ```csharp button.Click += (sender, e) => { Console.WriteLine("Button clicked!"); }; ``` Lambda 表达式是 C# 编程语言中的一个非常重要的概念...
【QT】06 Lambda表达式文章代码 在QT编程中,Lambda表达式是一种非常实用的特性,它使得函数对象的创建变得更加简洁和直观。Lambda函数,也被称为闭包,允许我们在代码中定义匿名函数,即没有名字的函数,通常用于...
《精通Lambda表达式:Java多核编程》这本书深入探讨了Java编程中的一种重要特性——Lambda表达式,以及如何在多核环境下充分利用这一特性提高程序性能。Lambda表达式是Java 8引入的关键特性之一,它极大地简化了函数...