stream流中filter
时间: 2023-07-08 13:47:42 浏览: 100
stream流中的 filter() 方法用于根据指定的条件过滤流中的元素,返回一个包含符合条件的元素的新流。它接收一个 Predicate<T> 类型的参数,该参数是一个函数式接口,用于判断流中的元素是否符合条件。例如,下面的代码使用 filter() 方法过滤出一个整数流中大于 5 的元素:
```
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> filtered = numbers.stream()
.filter(num -> num > 5)
.collect(Collectors.toList());
System.out.println(filtered); // [6, 7, 8, 9, 10]
```
在上面的代码中,我们使用了 stream() 方法将 List 转换成一个流,然后使用 filter() 方法过滤出大于 5 的元素,最后使用 collect() 方法将结果转换成一个 List。
相关问题
stream流中filter过滤
stream流中的filter()方法用于对流中的元素进行过滤操作。它接受一个Predicate函数式接口作为参数,该接口定义了一个用于判断元素是否满足条件的test()方法。
在调用filter()方法时,流中的每个元素会依次传入Predicate的test()方法中,如果test()方法返回true,表示该元素满足条件,会被保留在流中;如果返回false,表示该元素不满足条件,会被过滤掉。
下面是一个示例代码,演示了如何使用filter()方法对一个整数流进行过滤,只保留偶数:
```
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
.filter(num -> num % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 输出[2, 4, 6, 8, 10]
```
在上述代码中,我们首先创建了一个整数列表numbers。然后,通过调用stream()方法将其转换为流。接着,使用filter()方法传入一个Lambda表达式`num -> num % 2 == 0`作为条件,筛选出偶数。最后,使用collect()方法将过滤后的结果收集到一个新的列表中,并输出结果。
通过使用filter()方法,我们可以根据自己的需求对流中的元素进行灵活的过滤操作。
java中stream流中filter用法
在Java中,Stream API提供了一个非常方便的功能,那就是`filter()`方法。这个方法用于从集合或数组中筛选出满足特定条件的元素,返回一个新的流(Stream),而不会改变原集合。`filter()`方法接受一个Predicate(谓词)作为参数,这个谓词是一个可以评估流中每个元素是否符合条件的函数。
使用`filter()`的基本语法是这样的:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> filteredNumbers = numbers.stream()
.filter(condition Predicate)
.collect(Collectors.toList());
```
这里的`condition`是一个函数,比如`x -> x % 2 == 0`,如果元素满足这个条件(在这个例子中,就是偶数),则会被包含在新的流中。
阅读全文