跳转到主内容
极星编程网:以代码为星,赴技术山海!

Java Stream.map方法如何转换集合元素

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

Java 中的Stream.map方法用于将流中的每个元素按照指定规则转换成另一种形式,返回一个新的流。它属于中间操作,常用于集合元素的类型转换、提取字段或数据加工。

map 方法的基本用法map接收一个Function函数式接口作为参数,该函数定义了从原元素 T 到新元素 R 的映射关系。转换后生成一个包含新类型元素的 Stream。

常见场景包括:

将字符串转为大写提取对象的某个属性数值类型的转换(如 String 转 Integer)

实际示例

以下是一些典型的使用方式:

立即学习“Java免费学习笔记(深入)

”;

1. 字符串转大写

Eclipse导入Android或其他的JAVA项目的正确方法 WORD版本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看下载Listwords = Arrays.asList("hello", "world");Listupper = words.stream().map(String::toUpperCase).collect(Collectors.toList());

2. 提取对象属性

class Person {private String name;public Person(String name) { this.name = name; }public String getName() { return name; }}Listpeople = Arrays.asList(new Person("Alice"), new Person("Bob"));Listnames = people.stream().map(Person::getName).collect(Collectors.toList()); // 结果: ["Alice", "Bob"]

3. 类型转换

ListstrNums = Arrays.asList("1", "2", "3");Listints = strNums.stream().map(Integer::parseInt).collect(Collectors.toList()); // [1, 2, 3]注意事项使用 map 时需注意几点:输入和输出流的元素数量一致,一对一转换若需一对多转换(如拆分),应使用 flatMap map 操作不会修改原始集合,而是生成新流避免在 map 中执行副作用操作(如修改外部变量),保持函数纯净更利于并行流处理基本上就这些。map 是 Stream API 中最常用的操作之一,掌握它能大幅提升数据处理效率。只要明确转换逻辑,写起来很直观。

相关文章