stream().map进阶用法
时间: 2023-10-12 12:03:51 浏览: 43
除了简单的元素映射,`map`方法还可以用于更复杂的操作。下面是一些`map`方法的进阶用法示例:
1. 对象映射:可以使用`map`方法将一个对象的某个属性提取出来,形成一个新的Stream。例如,假设有一个包含Person对象的Stream,我们可以使用`map`方法提取每个Person对象的name属性:
```java
List<Person> persons = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35)
);
List<String> names = persons.stream()
.map(Person::getName)
.collect(Collectors.toList());
System.out.println(names); // 输出 [Alice, Bob, Charlie]
```
2. 多重映射:可以使用多次连续的`map`方法对元素进行多次转换。例如,假设有一个包含字符串的Stream,我们可以使用两次`map`方法将每个字符串转换为大写后再反转:
```java
List<String> words = Arrays.asList("hello", "world", "java");
List<String> transformedWords = words.stream()
.map(String::toUpperCase)
.map(StringUtils::reverse)
.collect(Collectors.toList());
Sys