java stream流 中map
时间: 2023-09-24 07:05:12 浏览: 86
在 Java Stream 中,`map()` 是一个中间操作,用于将 Stream 中的每个元素映射到另一个元素。它接受一个函数作为参数,该函数用于将源元素转换成目标元素。
`map()` 方法的函数参数可以是 Lambda 表达式或方法引用。Lambda 表达式可以根据需要定义转换逻辑,而方法引用则是对已有方法的引用,简化了代码的书写。
下面是一些示例代码,演示了如何使用 `map()` 方法:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squaredNumbers = numbers.stream()
.map(n -> n * n)
.collect(Collectors.toList());
System.out.println(squaredNumbers); // 输出:[1, 4, 9, 16, 25]
```
在这个示例中,我们首先创建了一个包含一些整数的列表。然后,我们使用 `stream()` 方法将列表转换成一个 Stream 对象。接着,我们使用 `map()` 方法将每个整数平方,并将结果收集到一个新的列表中。
除了简单的数值计算,`map()` 方法还可以用于更复杂的转换操作。例如,可以使用 `map()` 方法将一个对象的某个属性提取出来,或者将对象转换成不同的类型。
```java
List<Person> people = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35)
);
List<String> names = people.stream()
.map(Person::getName)
.collect(Collectors.toList());
System.out.println(names); // 输出:[Alice, Bob, Charlie]
```
在这个示例中,我们首先创建了一个包含一些 Person 对象的列表。然后,我们使用 `map()` 方法将每个 Person 对象的名称提取出来,并将结果收集到一个新的列表中。
通过使用 `map()` 方法,我们可以方便地对 Stream 中的元素进行转换操作,从而得到我们需要的结果。这使得代码更加简洁,同时也提高了可读性和维护性。
阅读全文