java 8 函数式编程map
时间: 2023-08-11 14:17:20 浏览: 117
Java-Java函数式编程教程
在 Java 8 中,函数式编程的支持得到了很大的提升,其中包括了 `Stream` API 和 `Lambda` 表达式。在这些新的特性中,`map` 方法是一个非常重要的方法。它可以让你对一个 `Stream` 中的每个元素执行一个函数,返回一个新的 `Stream`,这个新的 `Stream` 中的元素就是原来的元素经过函数处理后的结果。
下面是一个简单的例子,假设我们有一个 `List`,里面存储了一些字符串,我们想要将这些字符串转化为大写形式:
```java
List<String> list = Arrays.asList("apple", "banana", "orange");
list.stream()
.map(String::toUpperCase)
.forEach(System.out::println);
```
上述代码中,我们首先将 `List` 转化为 `Stream`,然后使用 `map` 方法将每个字符串转化为大写形式,最后使用 `forEach` 方法输出每个转化后的结果。
除了使用方法引用,我们还可以使用 `Lambda` 表达式来实现同样的功能:
```java
List<String> list = Arrays.asList("apple", "banana", "orange");
list.stream()
.map(str -> str.toUpperCase())
.forEach(str -> System.out.println(str));
```
注意,`map` 方法返回的是一个新的 `Stream`,而不是原来的 `Stream`。这也就意味着我们可以对返回的 `Stream` 进行多次操作,比如使用 `filter` 方法筛选一些元素。
```java
List<String> list = Arrays.asList("apple", "banana", "orange");
list.stream()
.map(String::toUpperCase)
.filter(str -> str.startsWith("A"))
.forEach(System.out::println);
```
上述代码中,我们将 `map` 和 `filter` 方法一起使用,先将每个字符串转化为大写形式,然后筛选以字母 A 开头的字符串,最后输出筛选后的结果。
阅读全文