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
分享到:
相关推荐
在Java的众多特性中,动态代理和Java 8的新特性——Lambda表达式是两个重要的概念。本教程将深入探讨这两个话题,帮助开发者提升编程效率和代码质量。 首先,我们来了解一下动态代理。在Java中,动态代理允许我们在...
Java 8是Java编程语言的一个重大更新,引入了许多新特性,其中最为显著的就是Lambda表达式。Lambda表达式是函数式编程的关键元素,它允许我们以更简洁的方式编写匿名函数,从而简化了处理集合数据和事件驱动编程的...
Lambda表达式是Java8的一大亮点,与Java8的新特性Stream()一起使用可以使代码变得更加简洁紧凑。 Lambda表达式是Java8中的一个非常重要的特性,它可以使代码变得更加简洁紧凑,提高代码的可读性和可维护性。
Lambda表达式是Java编程语言中的一个关键特性,自Java 8开始引入,它极大地简化了函数式编程,尤其是在处理集合数据时。Lambda表达式的主要目的是为了创建匿名函数,即没有名字的函数,它可以被当作一个值传递给方法...
### Java 8 中 Lambda 表达式的全解析 #### 引言 Java 8 自发布以来,便成为了 Java 发展史上的一大里程碑。...对于希望深入了解 Java 8 新特性的开发者而言,掌握 Lambda 表达式的使用技巧是必不可少的一步。
在这个"Java8集合 CompletableFuture lambda表达式 新的TimeAPI 和ForkJoin Demo包"中,我们可以深入探讨以下几个关键知识点: 1. **Lambda表达式**: Lambda表达式是Java 8的一大亮点,它简化了对匿名函数的处理...
Lambda表达式是Java 8引入的一项重要特性,它极大地简化了函数式编程,使Java开发者能够更好地利用多核处理器的优势,提升程序的并行性能。以下是关于这一主题的详细知识讲解: 1. **Lambda表达式基础**:Lambda...
首先,lambda表达式是Java 8为了支持函数式编程范式引入的一种新的编程语言特性。它提供了简洁的语法来表示匿名方法,也就是没有名称的方法。Lambda表达式的基本形式包括参数、箭头符号(->)和一个表达式或语句块。...
Lambda表达式是Java 8中引入的一种新的函数式编程方式,它可以将函数作为参数传递给其他函数。 Stream是一种lazy的数据处理方式,它可以对集合进行各种操作,而不需要显式地遍历集合。Stream可以通过filter、map、...
Stream API是Java 8引入的用于处理集合的新特性,Lambda表达式与之配合使用,能实现复杂的数据处理任务。例如,`list.stream().filter(s -> s.startsWith("A")).map(String::toUpperCase).collect(Collectors.toList...
Lambda表达式是Java编程语言中的一个关键特性,自Java 8开始引入,它极大地简化了函数式编程,尤其是处理集合数据时的操作。Lambda表达式的主要目的是为了创建无名函数,即那些只在需要时被定义,不需要单独命名的...
这个压缩包包含了丰富的编程示例,旨在帮助读者深入理解Java 8的新特性以及Java编程的基本概念。下面将对其中的关键知识点进行详细的阐述。 1. **Lambda表达式**:Java 8引入了lambda表达式,这是一种简洁的匿名...
Lambda表达式是Java 8引入的新特性,它简化了函数式编程,使得代码更加简洁和易读。Lambda表达式是一种匿名函数,它可以作为方法参数、返回值,或者直接在支持的地方使用。Lambda的标准格式包括参数列表、箭头符号和...
在Java 8中,匿名内部类、Lambda表达式和方法引用是重要的新特性,它们极大地简化了代码,提升了代码的可读性和效率。下面将详细探讨这三个知识点,并结合提供的测试用例进行分析。 1. **匿名内部类**: 匿名内部类...
本教程聚焦于Java的基础,特别是动态代理和Java 8的新特性,这些都是现代Java开发中不可或缺的知识点。 首先,让我们深入理解Java动态代理。动态代理是Java提供的一种机制,允许我们在运行时创建一个实现一组给定...
1. **下载**:从官方或者第三方源获取`java-8-openjdk-amd64.tar.gz`压缩包。 2. **解压**:使用`tar`命令解压文件到指定目录。 3. **配置环境变量**:修改`~/.bashrc`或`~/.bash_profile`文件,添加`JAVA_HOME`、`...
lambda表达式是Java 8中引入的一种新的语法特性,它允许开发者使用更加简洁的方式来编写代码。lambda表达式可以用来代替匿名内部类,简化代码的编写,并且提高代码的可读性。在Java后台分组排序过程中,lambda...
Java 8是Java编程语言的一个重大更新,引入了许多新的特性和功能,显著提升了开发效率和代码的可读性。这份官方版本的Java8中文API文档是开发者了解和掌握这些新特性的宝贵资源。以下是其中的一些关键知识点: 1. *...
在Java8中,Lambda表达式引入了一种新的编程范式,使得函数式编程风格成为可能。Lambda表达式允许我们将函数作为一个对象来处理,这在处理集合、事件驱动、并发编程等方面带来了极大的便利。在给定的例子中,我们...
本教程聚焦于Java的基础知识,特别是动态代理和Java 8的新特性,这些都是Java开发者需要掌握的关键概念。 首先,让我们深入理解动态代理。动态代理在Java中是一种允许我们在运行时创建具有特定接口的代理类的技术。...