stream filter多个和单个
时间: 2023-07-13 12:38:54 浏览: 117
多媒体流播放filter
4星 · 用户满意度95%
`Stream`中的`filter`方法可以用于过滤`Stream`中的元素,返回一个新的`Stream`对象。`filter`方法可以接受一个参数,也可以接受多个参数。
当`filter`方法接受一个参数时,这个参数是一个`Predicate`类型的函数接口,用于判断`Stream`中的元素是否符合条件。例如,以下代码使用`filter`方法过滤出所有大于等于10的元素:
```
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20);
List<Integer> result = numbers.stream().filter(n -> n >= 10).collect(Collectors.toList());
System.out.println(result); // [10, 15, 20]
```
当`filter`方法接受多个参数时,这些参数都是`Predicate`类型的函数接口,它们将被组合成一个新的`Predicate`。例如,以下代码使用`filter`方法过滤出所有大于等于10且小于等于15的元素:
```
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20);
List<Integer> result = numbers.stream().filter(n -> n >= 10).filter(n -> n <= 15).collect(Collectors.toList());
System.out.println(result); // [10, 15]
```
这里使用了两个`filter`方法,它们都返回一个新的`Stream`对象,第二个`filter`方法将前一个`filter`方法过滤后的结果再次过滤,最终得到所有大于等于10且小于等于15的元素。
阅读全文