Java stream filter 顺便支持map 操作吗
时间: 2024-09-14 20:16:57 浏览: 35
Stream管道流Map操作.pdf
Java中的Stream API是Java 8引入的一个强大的功能,用于处理集合(如List、Set等)的数据操作。Stream API中的`filter`方法用于根据给定的谓词(Predicate)筛选数据,而`map`方法则用于对流中的元素进行转换。
`filter`方法本身并不直接支持`map`操作,但可以在`filter`操作之后链式调用`map`方法。这种链式调用使得`filter`和`map`可以结合使用,先过滤出满足条件的元素,然后对这些元素应用转换操作。
下面是一个简单的例子来演示如何结合使用`filter`和`map`:
```java
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eve");
List<String> filteredAndMappedNames = names.stream()
.filter(name -> name.length() > 4) // 筛选出长度大于4的名字
.map(name -> name.toUpperCase()) // 将名字转换为大写
.collect(Collectors.toList()); // 收集结果到新的List
System.out.println(filteredAndMappedNames); // 输出: [ALICE, CHARLIE, DAVID]
```
在这个例子中,我们首先创建了一个包含名字的列表。然后,我们使用`stream()`方法创建了一个流。接着,我们链式调用了`filter`方法来筛选出长度大于4的名字,然后使用`map`方法将这些名字转换为大写。最后,我们使用`collect`方法将流中的数据收集到一个新的列表中。
阅读全文