返回

一文梳理,轻松掌握Stream.map()和Stream.forEach()的精髓

后端

Stream.map()和Stream.forEach()是Java 8中引入的Stream API的两个重要方法,这两个方法都是用来处理流中的元素的,但它们的功能却截然不同,为了方便理解,我们可以分别来看一下这两个方法的功能。

Stream.map()

java
Stream<String> names = Stream.of("John", "Mary", "Bob");
Stream<String> upperCaseNames = names.map(name -> name.toUpperCase());

在上面的代码中,我们使用Stream.of()方法创建了一个包含三个字符串的流,然后使用Stream.map()方法将这个流中的每个元素都映射到了一个新的元素,这个新的元素是原元素的大写形式。因此,upperCaseNames流将包含三个字符串,分别是“JOHN”、“MARY”和“BOB”。

使用Stream.map()方法时,我们需要提供一个函数来将流中的每个元素映射到一个新的元素。这个函数可以是lambda表达式,也可以是方法引用。例如,以下代码使用一个方法引用来将流中的每个元素映射到一个新的元素:

java
Stream<String> names = Stream.of("John", "Mary", "Bob");
Stream<String> upperCaseNames = names.map(String::toUpperCase);

Stream.forEach()

java
Stream<String> names = Stream.of("John", "Mary", "Bob");
names.forEach(System.out::println);

在上面的代码中,我们使用Stream.of()方法创建了一个包含三个字符串的流,然后使用Stream.forEach()方法对流中的每个元素都执行了一个操作,这个操作是将元素打印到控制台。

使用Stream.forEach()方法时,我们需要提供一个函数来对流中的每个元素执行一个操作。这个函数可以是lambda表达式,也可以是方法引用。例如,以下代码使用一个lambda表达式来对流中的每个元素执行一个操作:

java
Stream<String> names = Stream.of("John", "Mary", "Bob");
names.forEach(name -> System.out.println(name));

总的来说,Stream.map()和Stream.forEach()是Java 8中非常有用的两个方法,它们可以帮助我们轻松地处理流中的元素。Stream.map()用于将流中的每个元素映射到另一个元素,而Stream.forEach()用于对流中的每个元素执行一个操作。