Java 8 - lambda

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40254498/article/details/79217935 lambda学习记录lambda,java 8 引入lambda将是对使用集合的一次重大改变,虽然看着很难懂,但是用着用着就好了,本文将用几个例子举例,本文参考的网上的一些例子。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40254498/article/details/79217935

lambda

学习记录lambda,java 8 引入lambda将是对使用集合的一次重大改变,虽然看着很难懂,但是用着用着就好了,本文将用几个例子举例,本文参考的网上的一些例子。违删。新手挑战区。


lambda主要的表示形式

(params) -> expression
(params) -> statement
(params) -> { statements }

Example
() - > System.out.println(” Lambda Expressions”);
(int i, int j) -> System.out.println(i+j);

Example No.1

遍历数组等

 List features = Arrays.asList("Lambdas", "Method", "Java", "Hello");
 features.forEach(n -> System.out.println(n));
 // 使用Java 8的方法引用更方便,方法引用由::双冒号操作符标示,
 features.forEach(System.out::println);

Example No.2

获取数字的个数、最小值、最大值、总和以及平均值

 List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);
 IntSummaryStatistics stats = primes.stream().mapToInt((x) -> x).summaryStatistics();
 System.out.println("Highest prime number in List : " + stats.getMax());
 System.out.println("Lowest prime number in List : " + stats.getMin());
 System.out.println("Sum of all prime numbers : " + stats.getSum());
 System.out.println("Average of all prime numbers : " + stats.getAverage());

结果:
Highest prime number in List : 29
Lowest prime number in List : 2
Sum of all prime numbers : 129
Average of all prime numbers : 12.9

Example No.3

map - reduce 例子

List<Integer> costBeforeTax = Arrays.asList(100, 200, 300, 400, 500);
//这个是将每个数都变成浮点数 * 12
costBeforeTax.stream().map((cost) -> cost + .12 * cost ).forEach(System.out::println);
//这个是将每个数都变成浮点数 * 12 然后再算和
double bill = costBeforeTax.stream().map((cost) -> cost + .12*cost).reduce((sum, cost) -> sum + cost).get();
System.out.println("Total : " + bill);

结果:
112.0
224.0
336.0
448.0
560.0
Total : 1680.0

map---对列表的每个元素应用函数使用
// 将字符串换成大写并用逗号链接起来
List<String> G7 = Arrays.asList("USA", "Japan", "France", "Germany", "Italy", "U.K.","Canada");
String G7Countries = G7.stream().map(x -> x.toUpperCase()).collect(Collectors.joining(", "));
System.out.println(G7Countries);

Example No.4

匿名类

// Java 8之前:
new Thread(new Runnable() {
    @Override
    public void run() {
     System.out.println("Rock it!");
     System.out.println("Hello world");
    }
}).start();
//java8 支持
  new Thread (() -> {
      System.out.println("Rock it!");
      System.out.println("hello world!");
  }).start();

结果:
Rock it!
Hello world!

Example No.5

函数式接口Predicate
Java 8也添加了一个包,叫做 java.util.function。它包含了很多类,用来支持Java的函数式编程。其中一个便是Predicate,使用 java.util.function.Predicate 函数式接口以及lambda表达式,可以向API方法添加逻辑,用更少的代码支持更多的动态行为。下面是Java 8 Predicate 的例子,展示了过滤集合数据的多种常用方法。Predicate接口非常适用于做过滤。

// 甚至可以用and()、or()和xor()逻辑函数来合并Predicate,
// 例如要找到所有以J开始,长度为四个字母的名字,你可以合并两个Predicate并传入
List<String> languages = Arrays.asList("Java", "Scala", "C++", "Haskell", "Lisp","h","d","map","r");
Predicate<String> startsWithJ = (n) -> n.startsWith("J");
Predicate<String> fourLetterLong = (n) -> n.length() == 4;
languages.stream()
    .filter(startsWithJ.and(fourLetterLong))
    .forEach((n) -> System.out.print("nName, which starts with 'J' and four letter long is : " + n));

运行结果
Original List : [Java, Scala, C++, Haskell, Lisp, h, d, map, r], filtered list : [Java, Scala, C++, Haskell, Lisp, map]

目录
相关文章
|
3天前
|
Java 数据处理 开发者
Java中的Lambda表达式:简化你的代码之路
【8月更文挑战第66天】Lambda表达式在Java 8中首次引入,它为Java开发者提供了一种更简洁、更灵活的编程方式。本文将通过简单易懂的语言和实际代码示例,引导你理解Lambda表达式的基本概念、语法结构以及如何在Java项目中应用它来简化代码。无论你是Java新手还是有经验的开发者,这篇文章都将帮助你更好地掌握这一强大的工具。
30 11
|
3天前
|
Java API
Java中的Lambda表达式:一种简洁而强大的编程工具
本文将深入探讨Java中的Lambda表达式,它是一种简洁而强大的编程工具。通过本文,您将了解Lambda表达式的基本概念、语法结构以及使用方法。我们还将介绍Lambda表达式的应用场景和最佳实践,并通过实例演示其在简化代码、提高可读性和编写并行代码方面的优势。最后,我们将讨论使用Lambda表达式时需要注意的一些事项和限制。无论您是初学者还是有经验的Java开发人员,都可以从本文中获得有价值的知识和技能。现在,让我们一起探索Java中Lambda表达式的奇妙世界吧!
|
9天前
|
Java
探索Java中的Lambda表达式
【9月更文挑战第28天】Lambda表达式,这一Java 8引入的轻量级语法结构,为函数式编程提供了强有力的支持。它简化了代码,提高了开发效率,并使得并行处理数据变得异常容易。本文将通过直观的例子和详细的解释,带领读者深入理解Lambda表达式的奥秘,从而在编程实践中更加灵活地运用它们。
|
10天前
|
Java API
探索Java中的Lambda表达式
【9月更文挑战第27天】Lambda表达式,作为Java 8的一大亮点,为我们的编程世界带来了一股清新之风。它以其简洁明了的语法和强大的功能,让我们在处理集合、线程等复杂操作时如鱼得水。本文将带你一探Lambda表达式的奥秘,让你领略到它的魅力所在。
18 6
|
11天前
|
Java API 开发者
探索Java中的Lambda表达式:简洁与强大的代码实践
本文深入探讨Java中Lambda表达式的定义、用法及优势,通过实例展示其如何简化代码、提升可读性,并强调在使用中需注意的兼容性和效率问题。Lambda作为Java 8的亮点功能,不仅优化了集合操作,还促进了函数式编程范式的应用,为开发者提供了更灵活的编码方式。
|
7天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码之旅##
【8月更文挑战第62天】 Java 8的发布为开发者带来了诸多新特性,其中最引人注目的无疑是Lambda表达式。这一特性不仅让代码变得更加简洁,还极大地提升了开发的效率。本文将通过实际示例,展示如何利用Lambda表达式来优化我们的代码结构,同时探讨其背后的工作原理和性能考量。 ##
|
8天前
|
Java API 开发者
探索Java中的Lambda表达式
【9月更文挑战第29天】Lambda表达式,在Java编程中,它不仅仅是一种语法糖,更是简化代码、提升效率的利器。本文将通过浅显易懂的语言和实际代码示例,带你走进Lambda的世界,了解其背后的原理和在日常开发中的应用,让你的代码更简洁、更高效。
|
10天前
|
Java API 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【9月更文挑战第27天】在Java 8中引入的Lambda表达式为编程带来了革命性的变化。通过简洁的语法和强大的功能,它不仅简化了代码编写过程,还显著提升了程序的执行效率。本文将深入探讨Lambda表达式的本质、用法和优势,并结合实例演示其在实际开发中的应用。无论你是Java新手还是资深开发者,都能从中获得启发,优化你的代码设计。
|
14天前
|
Java 开发者
探索Java中的Lambda表达式
【9月更文挑战第23天】本文将深入探讨Java中的Lambda表达式,从其基本概念、语法结构到实际应用案例,旨在帮助读者更好地理解并掌握这一现代编程特性。我们将通过简洁明了的代码示例,展示Lambda表达式如何简化代码、提高开发效率。无论你是Java新手还是资深开发者,这篇文章都将为你提供有价值的见解和技巧。
|
12天前
|
Java API
Java中的Lambda表达式及其应用
本文将深入探讨Java中的Lambda表达式,通过简洁易懂的语言和示例代码,帮助读者理解Lambda表达式的定义、优势以及在实际开发中的应用。同时,我们将解析一些常见的使用场景,并展示如何利用Lambda表达式简化代码,提高编程效率。
19 2
下一篇
无影云桌面