`

Java8新特性 - Lambda表达式 - 基本知识

 
阅读更多
A lambda expression is an unnamed block of code (or an unnamed function) with a list of formal parameters and a
body.

Java8中的lambda表达式不同于C#,使用的是->

eg:
// Takes an int parameter and returns the parameter value incremented by 1
(int x) -> x + 1

// Takes two int parameters and returns their sum
(int x, int y) -> x + y

// Takes two int parameters and returns the maximum of the two
(int x, int y) -> { 
	int max = x > y ? x : y;
	return max;
}

// Takes no parameters and returns void
() -> { }

// Takes no parameters and returns a string "OK"
() -> "OK"

// Takes a String parameter and prints it on the standard output
(String msg) -> { System.out.println(msg); }

// Takes a parameter and prints it on the standard output
msg -> System.out.println(msg)

// Takes a String parameter and returns its length
(String str) -> str.length()


Adder.java
package corejava2.lambda;

@FunctionalInterface
public interface Adder {
	double add(double n1, double n2);
}



Joiner.java

package corejava2.lambda;

@FunctionalInterface
public interface Joiner {
	String join(String s1, String s2);
}


TargetTypeTest.java
package corejava2.lambda;

public class TargetTypeTest {
	public static void main(String[] args) {
		// Creates an Adder using a lambda expression
		Adder adder = (x, y) -> x + y;
		// Creates a Joiner using a lambda expression
		Joiner joiner = (x, y) -> x + y;
		// Adds two doubles
		double sum1 = adder.add(10.34, 89.11);
		// Adds two ints
		double sum2 = adder.add(10, 89);
		// Joins two strings
		String str = joiner.join("Hello", " lambda");
		System.out.println("sum1 = " + sum1);
		System.out.println("sum2 = " + sum2);
		System.out.println("str = " + str);
	}
}



运行结果:
sum1 = 99.45
sum2 = 99.0
str = Hello lambda
分享到:
评论

相关推荐

    669.667.JAVA基础教程_动态代理与Java8新特性-Lambda表达式语法的使用(669).rar

    在Java的众多特性中,动态代理和Java 8的新特性——Lambda表达式是两个重要的概念。本教程将深入探讨这两个话题,帮助开发者提升编程效率和代码质量。 首先,我们来了解一下动态代理。在Java中,动态代理允许我们在...

    java8新特性,Lambda表达式

    Java 8是Java编程语言的一个重大更新,引入了许多新特性,其中最为显著的就是Lambda表达式。Lambda表达式是函数式编程的关键元素,它允许我们以更简洁的方式编写匿名函数,从而简化了处理集合数据和事件驱动编程的...

    详解Java8中的Lambda表达式

    Lambda表达式是Java8的一大亮点,与Java8的新特性Stream()一起使用可以使代码变得更加简洁紧凑。 Lambda表达式是Java8中的一个非常重要的特性,它可以使代码变得更加简洁紧凑,提高代码的可读性和可维护性。

    2_Lambda表达式.zip

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

    探索Java 8的新世界:Lambda表达式全解析

    ### Java 8 中 Lambda 表达式的全解析 #### 引言 Java 8 自发布以来,便成为了 Java 发展史上的一大里程碑。...对于希望深入了解 Java 8 新特性的开发者而言,掌握 Lambda 表达式的使用技巧是必不可少的一步。

    Java8集合 CompletableFuture lambda表达式 新的TimeAPI 和ForkJoin Demo包

    在这个"Java8集合 CompletableFuture lambda表达式 新的TimeAPI 和ForkJoin Demo包"中,我们可以深入探讨以下几个关键知识点: 1. **Lambda表达式**: Lambda表达式是Java 8的一大亮点,它简化了对匿名函数的处理...

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

    Lambda表达式是Java 8引入的一项重要特性,它极大地简化了函数式编程,使Java开发者能够更好地利用多核处理器的优势,提升程序的并行性能。以下是关于这一主题的详细知识讲解: 1. **Lambda表达式基础**:Lambda...

    java 8 lambda- expressions 学习资料,例子。练习 java example

    首先,lambda表达式是Java 8为了支持函数式编程范式引入的一种新的编程语言特性。它提供了简洁的语法来表示匿名方法,也就是没有名称的方法。Lambda表达式的基本形式包括参数、箭头符号(->)和一个表达式或语句块。...

    Stream、Lambda表达式练习.doc

    Lambda表达式是Java 8中引入的一种新的函数式编程方式,它可以将函数作为参数传递给其他函数。 Stream是一种lazy的数据处理方式,它可以对集合进行各种操作,而不需要显式地遍历集合。Stream可以通过filter、map、...

    Lambda表达式学习,总结,速查手册大全.rar

    Stream API是Java 8引入的用于处理集合的新特性,Lambda表达式与之配合使用,能实现复杂的数据处理任务。例如,`list.stream().filter(s -> s.startsWith("A")).map(String::toUpperCase).collect(Collectors.toList...

    Lambda表达式学习教程

    Lambda表达式是Java编程语言中的一个关键特性,自Java 8开始引入,它极大地简化了函数式编程,尤其是处理集合数据时的操作。Lambda表达式的主要目的是为了创建无名函数,即那些只在需要时被定义,不需要单独命名的...

    OnJava8-Examples-3.0_soucecode_java_

    这个压缩包包含了丰富的编程示例,旨在帮助读者深入理解Java 8的新特性以及Java编程的基本概念。下面将对其中的关键知识点进行详细的阐述。 1. **Lambda表达式**:Java 8引入了lambda表达式,这是一种简洁的匿名...

    Java基础知识-day07【线程池、Lambda表达式】.pdf

    Lambda表达式是Java 8引入的新特性,它简化了函数式编程,使得代码更加简洁和易读。Lambda表达式是一种匿名函数,它可以作为方法参数、返回值,或者直接在支持的地方使用。Lambda的标准格式包括参数列表、箭头符号和...

    java8 探讨与分析匿名内部类、lambda表达式、方法引用的底层实现的测试用例

    在Java 8中,匿名内部类、Lambda表达式和方法引用是重要的新特性,它们极大地简化了代码,提升了代码的可读性和效率。下面将详细探讨这三个知识点,并结合提供的测试用例进行分析。 1. **匿名内部类**: 匿名内部类...

    666.664.JAVA基础教程_动态代理与Java8新特性-Java8新特性内容概述(666).rar

    本教程聚焦于Java的基础,特别是动态代理和Java 8的新特性,这些都是现代Java开发中不可或缺的知识点。 首先,让我们深入理解Java动态代理。动态代理是Java提供的一种机制,允许我们在运行时创建一个实现一组给定...

    java-8-openjdk-amd64

    1. **下载**:从官方或者第三方源获取`java-8-openjdk-amd64.tar.gz`压缩包。 2. **解压**:使用`tar`命令解压文件到指定目录。 3. **配置环境变量**:修改`~/.bashrc`或`~/.bash_profile`文件,添加`JAVA_HOME`、`...

    lambda表达式解决java后台分组排序过程解析

    lambda表达式是Java 8中引入的一种新的语法特性,它允许开发者使用更加简洁的方式来编写代码。lambda表达式可以用来代替匿名内部类,简化代码的编写,并且提高代码的可读性。在Java后台分组排序过程中,lambda...

    官方版本-Java8-中文版-API(帮助你快速了解Java8新特性)

    Java 8是Java编程语言的一个重大更新,引入了许多新的特性和功能,显著提升了开发效率和代码的可读性。这份官方版本的Java8中文API文档是开发者了解和掌握这些新特性的宝贵资源。以下是其中的一些关键知识点: 1. *...

    Java8中lambda表达式的应用及一些泛型相关知识

    在Java8中,Lambda表达式引入了一种新的编程范式,使得函数式编程风格成为可能。Lambda表达式允许我们将函数作为一个对象来处理,这在处理集合、事件驱动、并发编程等方面带来了极大的便利。在给定的例子中,我们...

    659.657.JAVA基础教程_动态代理与Java8新特性-每天一考(659).rar

    本教程聚焦于Java的基础知识,特别是动态代理和Java 8的新特性,这些都是Java开发者需要掌握的关键概念。 首先,让我们深入理解动态代理。动态代理在Java中是一种允许我们在运行时创建具有特定接口的代理类的技术。...

Global site tag (gtag.js) - Google Analytics