Java中的Stream.map用于将流元素按规则转换并返回新流,属于中间操作。它接收Function函数式接口实现类型转换、属性提取等一对一操作,如字符串转大写、提取对象字段、数值解析等,常见示例如map(String::toUpperCase)、map(Person::getName)、map(Integer::parseInt),转换后元素数量不变,不修改原集合,需避免副作用以保证流处理纯净性。

Java 中的 Stream.map 方法用于将流中的每个元素按照指定规则转换成另一种形式,返回一个新的流。它属于中间操作,常用于集合元素的类型转换、提取字段或数据加工。
map 方法的基本用法
map 接收一个 Function
常见场景包括:
- 将字符串转为大写
- 提取对象的某个属性
- 数值类型的转换(如 String 转 Integer)
实际示例
以下是一些典型的使用方式:
立即学习“Java免费学习笔记(深入)”;
1. 字符串转大写
ListList
.map(String::toUpperCase)
.collect(Collectors.toList());
2. 提取对象属性
class Person {private String name;
public Person(String name) { this.name = name; }
public String getName() { return name; }
}
List
List
.map(Person::getName)
.collect(Collectors.toList()); // 结果: ["Alice", "Bob"]
3. 类型转换
ListList
.map(Integer::parseInt)
.collect(Collectors.toList()); // [1, 2, 3]
注意事项
使用 map 时需注意几点:
- 输入和输出流的元素数量一致,一对一转换
- 若需一对多转换(如拆分),应使用 flatMap
- map 操作不会修改原始集合,而是生成新流
- 避免在 map 中执行副作用操作(如修改外部变量),保持函数纯净更利于并行流处理
基本上就这些。map 是 Stream API 中最常用的操作之一,掌握它能大幅提升数据处理效率。只要明确转换逻辑,写起来很直观。










