`

Java Magazine lambad表达式示例代码

 
阅读更多
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 1.8引入了lambda表达式,这是Java语言的一项重大改进,显著提升了代码的简洁性和可读性,尤其在处理函数式编程场景时。Lambda表达式是Java 8对函数式接口支持的核心组成部分,它允许我们将代码块视为一种值,...

    java8 lambda表达式学习总结

    总结来说,Java 8 的 Lambda 表达式极大地提升了Java的表达力,使得代码更加简洁、易读。通过与Stream API的结合,开发者能够优雅地处理数据集合,提高了程序的可维护性和性能。学习和掌握Lambda表达式是Java 8...

    java8lambda表达式Demo

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

    Java8的lambda表达式

    总结,Java8的Lambda表达式是现代Java开发的重要工具,它为开发者提供了更灵活、简洁的代码实现方式,尤其是在处理集合和并发场景下。熟练掌握Lambda表达式,不仅可以提升代码质量,也能帮助开发者更好地理解和应用...

    Java 8 lambda表达式

    总之,Java 8的Lambda表达式极大地提升了代码的简洁性和可读性,特别是对于那些需要频繁使用回调函数或处理数据流的场景。通过将函数作为一个对象来传递,Java 8引入了函数式编程的概念,让开发者能以更加优雅的方式...

    Java的lambda表达式讲解代码(各种lambda表达式使用方式:无参、一个参数、多参数、简化形式...)

    本源码资源中的示例将演示如何通过Lambda表达式改善代码质量。 3、多线程编程:Lambda表达式在多线程编程中有很好的应用。本源码资源将介绍如何使用Lambda表达式简化线程的创建、同步和并行处理操作。 4、函数式接口...

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

    总的来说,Java Lambda表达式增强了代码的可读性和简洁性,但性能方面需要根据具体应用进行评估。在分析和优化性能时,我们需要全面考虑CPU利用率、I/O延迟、系统吞吐量等多个因素,并可能需要借助各种工具(如...

    JAVA 8 Lambda表达式-Lambda Expressions.rar

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

    JavaLambda表达式和匿名类.pdf

    在描述中提到的代码示例中,对比了使用匿名类和Lambda表达式实现相同功能的方法。 首先,让我们看看匿名类的使用。在传统的Java编程中,如果需要一个简单的接口实现,我们通常会创建一个新的类来实现这个接口,如`...

    java8中的Lambda表达式

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

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

    Java Lambda表达式的语法通常为 `(参数列表) -&gt; 表达式或代码块`。如果参数类型可以推断,那么参数列表可以省略括号。例如,一个无参数的Lambda表达式可以写作 `() -&gt; System.out.println("Hello, Lambda!")`。 2....

    C# Lambda表达式示例

    Lambda表达式提供了一种简洁的方式来定义匿名函数,使得代码更加紧凑和易读。下面我们将深入探讨C# Lambda表达式的概念、语法以及常见应用。 ### 1. Lambda表达式简介 Lambda表达式是一种可以没有名字的函数,它...

    《精通Lambda表达式:Java多核编程》.pdf

    《精通Lambda表达式:Java多核编程》

    Java8的Lambda表达式

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

    2_Lambda表达式.zip

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

    C#将Lambda表达式转成Sql语句

    在.NET框架中,C#是一种强大的编程语言,它支持Lambda表达式,这使得代码更加简洁、易读。Lambda表达式通常用于LINQ(Language Integrated Query)查询,它允许程序员使用类似SQL的语法在内存中的数据集上进行操作。...

    C#lambda表达式的使用

    在事件处理中,我们可以使用 Lambda 表达式来简化事件处理代码: ```csharp button.Click += (sender, e) =&gt; { Console.WriteLine("Button clicked!"); }; ``` Lambda 表达式是 C# 编程语言中的一个非常重要的概念...

    【QT】06 Lambda表达式文章代码

    【QT】06 Lambda表达式文章代码 在QT编程中,Lambda表达式是一种非常实用的特性,它使得函数对象的创建变得更加简洁和直观。Lambda函数,也被称为闭包,允许我们在代码中定义匿名函数,即没有名字的函数,通常用于...

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

    《精通Lambda表达式:Java多核编程》这本书深入探讨了Java编程中的一种重要特性——Lambda表达式,以及如何在多核环境下充分利用这一特性提高程序性能。Lambda表达式是Java 8引入的关键特性之一,它极大地简化了函数...

Global site tag (gtag.js) - Google Analytics