java中list流的flatMap中怎么过滤符合条件的数据
时间: 2024-03-20 07:41:09 浏览: 60
在Java中,可以使用`filter`方法来过滤符合条件的数据,然后再使用`flatMap`方法将符合条件的数据转换成流。
例如,假设我们有一个`List<String>`类型的列表,我们想要过滤出其中长度为偶数的字符串,可以使用以下代码:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "kiwi");
List<String> evenLengthStrings = list.stream()
.filter(s -> s.length() % 2 == 0)
.flatMap(s -> Stream.of(s))
.collect(Collectors.toList());
```
在上面的代码中,我们首先使用`filter`方法过滤出长度为偶数的字符串,然后使用`flatMap`方法将符合条件的字符串转换成一个新的流,最后使用`collect`方法将新的流转换成一个`List<String>`类型的列表。
需要注意的是,使用`flatMap`方法时,如果转换成的新流中某些元素为`null`,则这些`null`元素会被忽略。如果希望保留这些`null`元素,可以使用`flatMap`方法的变体`flatMapToXXX`,例如`flatMapToInt`、`flatMapToLong`和`flatMapToDouble`等。
阅读全文