java8 函数式编程
时间: 2023-11-24 07:50:43 浏览: 97
Java 8 引入了函数式编程的概念,它是一种声明式编程范式,可以将函数作为参数传递给其他函数,或者将函数作为返回值返回。Java 8 中引入了一些新的函数式接口,例如 `Function`、`Predicate`、`Consumer` 和 `Supplier` 等,这些接口可以用于 Lambda 表达式和方法引用。Lambda 表达式是一种匿名函数,它可以用于替代匿名内部类,使代码更加简洁易读。方法引用是一种简化 Lambda 表达式的语法,它可以直接引用已有的方法或构造函数。
下面是一个使用 Lambda 表达式和方法引用的例子:
```java
import java.util.Arrays;
import java.util.List;
public class FunctionalProgrammingExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 使用 Lambda 表达式计算列表中所有元素的平方和
int sumOfSquares = numbers.stream()
.map(x -> x * x)
.reduce(0, (x, y) -> x + y);
System.out.println("Sum of squares: " + sumOfSquares);
// 使用方法引用计算列表中所有元素的平方和
int sumOfSquares2 = numbers.stream()
.map(x -> square(x))
.reduce(0, (x, y) -> x + y);
System.out.println("Sum of squares: " + sumOfSquares2);
}
public static int square(int x) {
return x * x;
}
}
```
输出结果为:
```
Sum of squares: 55
Sum of squares: 55
```
阅读全文