Stream API中map和filter如何组合使用
时间: 2024-04-11 14:27:58 浏览: 122
在Stream API中,`map`和`filter`是两个常用的操作,它们可以组合使用来对集合进行转换和筛选。下面是一个示例:
假设我们有一个字符串列表,需要对其中的每个字符串进行大写转换,并且只保留长度大于等于5的字符串。可以使用`map`和`filter`来实现这个需求。
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> strings = Arrays.asList("apple", "banana", "orange", "grape", "watermelon");
List<String> result = strings.stream()
.map(String::toUpperCase) // 将每个字符串转换为大写
.filter(s -> s.length() >= 5) // 筛选长度大于等于5的字符串
.collect(Collectors.toList());
System.out.println(result); // 输出: [BANANA, ORANGE, WATERMELON]
}
}
```
在上面的例子中,我们通过调用`stream()`方法将字符串列表转换为Stream对象。然后使用`map`操作将每个字符串转换为大写形式,再使用`filter`操作筛选出长度大于等于5的字符串。最后使用`collect(Collectors.toList())`将结果收集到一个新的列表中。
这样,我们就通过组合使用`map`和`filter`对集合进行了转换和筛选。你可以根据具体需求灵活运用这两个操作。
阅读全文