java steam流 map 转list
时间: 2024-07-11 12:01:21 浏览: 75
在Java中,Stream API提供了一种高效处理集合数据的方式,其中`map()`方法通常用于将一个集合中的每个元素转换为另一个类型,而`toList()`则是用来把中间结果转换为List。当你想要将一个流(Stream)中的元素应用映射函数(如转换器函数)并收集到一个列表(List)中,你可以按照以下步骤操作:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
// 假设我们有一个Person对象的Stream
List<Person> people = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35)
);
// 定义一个转换函数,例如将年龄字段转为String
Function<Person, String> ageToString = person -> Integer.toString(person.getAge());
// 使用map()方法对每个人员的年龄进行转换
Stream<String> agesAsStrings = people.stream()
.map(ageToString); // 这里年龄会变为字符串形式
// 最后使用collect()和toList()方法将转换后的流转换为List
List<String> ageLists = agesAsStrings.collect(Collectors.toList());
System.out.println(ageLists); // 输出:[25, 30, 35]
```
在这个例子中,`map()`函数应用了`ageToString`函数,将每个人的年龄转换成了字符串。然后`collect(Collectors.toList())`收集所有结果并返回一个新的List。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)