Java 8新特性实战:简单案例教你轻松掌握Stream API与Lambda表达式

2026-08-28 0 阅读

Java 8引入了大量的新特性,其中Stream API和Lambda表达式是两个非常实用的功能。它们使得Java编程更加简洁、高效。本文将通过一些简单的案例,帮助你轻松掌握Stream API与Lambda表达式。

Stream API简介

Stream API是Java 8引入的一种新的抽象层,用于处理集合(如List、Set、Map等)中的元素。它允许你以声明式的方式处理数据集合,使得代码更加简洁、易于理解。

Stream API的基本操作

Stream API提供了许多基本操作,如:

  • 中间操作:如filter()map()flatMap()等,用于处理流中的元素。
  • 终端操作:如collect()forEach()reduce()等,用于收集或输出结果。

Lambda表达式简介

Lambda表达式是Java 8引入的一种新的语法结构,它允许你以更简洁的方式编写匿名函数。Lambda表达式通常用于Stream API中,以实现函数式编程。

Stream API与Lambda表达式的结合

Stream API与Lambda表达式的结合,使得处理集合中的数据变得非常简单。以下是一些简单的案例,帮助你理解它们的使用。

简单案例:计算集合中所有元素的总和

假设我们有一个整数集合,我们需要计算这个集合中所有元素的总和。

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

        int sum = numbers.stream()
                .filter(n -> n % 2 == 0) // 过滤出偶数
                .mapToInt(n -> n * n) // 将偶数平方
                .sum(); // 计算总和

        System.out.println("Sum of squares of even numbers: " + sum);
    }
}

在这个案例中,我们首先使用stream()方法创建了一个流,然后通过filter()方法过滤出偶数,接着使用mapToInt()方法将偶数平方,最后使用sum()方法计算总和。

简单案例:找出集合中最大的元素

假设我们有一个整数集合,我们需要找出这个集合中最大的元素。

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

        int max = numbers.stream()
                .max(Integer::compare)
                .orElseThrow(() -> new RuntimeException("List is empty"));

        System.out.println("Max number: " + max);
    }
}

在这个案例中,我们使用stream()方法创建了一个流,然后通过max()方法找出最大的元素。如果集合为空,orElseThrow()方法会抛出一个异常。

总结

通过以上案例,我们可以看到Stream API和Lambda表达式在Java编程中的应用。它们使得处理集合中的数据变得非常简单,提高了代码的可读性和可维护性。

希望本文能帮助你轻松掌握Stream API与Lambda表达式。在实际开发中,你可以根据自己的需求,灵活运用这些新特性,提高编程效率。

分享到: