j ava中stream流filter
时间: 2023-09-27 11:08:19 浏览: 164
在 Java 中,Stream 是一种操作集合的元素序列的方式。 Stream 可以让你更加方便和高效地对集合进行操作。其中,filter() 方法是 Stream 中的一个操作,它可以根据指定的条件对集合中的元素进行过滤。
filter() 方法的语法如下:
```
Stream<T> filter(Predicate<? super T> predicate)
```
其中,Predicate 是一个函数式接口,它包含一个参数并返回一个 Boolean 值。filter() 方法会遍历 Stream 中的每一个元素,对于 Predicate 返回 true 的元素,将其保留,否则将其过滤掉。
下面是一个示例代码,演示如何使用 filter() 方法来过滤一个字符串列表中的元素:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "grape", "pineapple");
List<String> filteredList = list.stream()
.filter(s -> s.contains("a"))
.collect(Collectors.toList());
System.out.println(filteredList);
```
输出结果为:
```
[apple, banana, orange, grape, pineapple]
```
在这个代码中,我们首先创建了一个字符串列表,然后使用 stream() 方法将其转换成 Stream。接着使用 filter() 方法过滤了列表中包含字母 "a" 的元素,并将过滤后的结果收集到一个新的列表中。最后输出了过滤后的列表。
需要注意的是,filter() 方法返回的是一个新的 Stream 对象,而不是修改原有的 Stream 对象。因此,如果需要对原有的 Stream 进行修改,需要使用其他的操作方法。
阅读全文