java stream filter
时间: 2023-04-30 22:03:20 浏览: 69
Java Stream 提供了 filter 方法,它可以用于过滤流中的元素。它接受一个 Predicate 参数,返回一个新的流,其中包含满足该谓词的所有元素。例如,流中的所有偶数可以使用以下代码过滤:
```
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
numbers.stream().filter(n -> n % 2 == 0).forEach(System.out::println);
```
它会输出 2,4,6,8,10
相关问题
Java stream filter
在Java中,Stream API是一个强大的工具,用于处理集合数据的一系列操作,包括过滤(filter)。`filter()`方法是Stream API中的一个基础操作,它的主要作用是从给定的流(Stream)中筛选出满足特定条件的元素,返回一个新的只包含符合条件的元素的Stream。
**filter()方法的用法**:
```java
List<String> elements = Arrays.asList("apple", "banana", "cherry", "date");
Stream<String> filteredStream = elements.stream()
.filter(keyword -> keyword.startsWith("b")); // 过滤以"b"开头的元素
List<String> result = filteredStream.collect(Collectors.toList());
```
在这个例子中,`filter()`方法接收一个谓词(Predicate接口的实现),这个谓词定义了一个条件(如`keyword.startsWith("b")`),只有当元素符合这个条件时,该元素会被保留在新的流中。
**相关问题**:
1. Stream API是什么?
2. Predicate接口在filter操作中的作用是什么?
3. `filter()`方法能处理哪些类型的条件?
4. 如果我想过滤出多个条件,应该怎么做?
java stream filter过滤器
Java Stream是Java 8引入的一个API,它可以方便地对Java集合进行处理。其中,filter过滤器是Stream API提供的一个方法,它可以根据某个条件过滤出符合条件的元素。
使用filter方法时,需要先传入一个Predicate(谓词)对象,该对象定义了过滤规则。然后,filter方法会对Stream中的每个元素执行Predicate中定义的条件,如果元素满足条件,则被保留下来,否则被过滤掉。
例如,可以使用filter过滤器过滤出一个List中所有大于5的元素,代码如下:
List<Integer> list = Arrays.asList(3, 5, 7, 8, 2, 4);
list.stream()
.filter(i -> i > 5)
.forEach(System.out::println);
运行以上代码,会输出7和8,符合条件的元素被保留下来了。
除了filter过滤器外,Stream API还提供了许多其他有用的方法,例如map、reduce、sorted等等,可以方便地对集合进行转换、计算、排序等操作。使用Stream API可以让代码更简洁、易读、易维护,值得去学习和使用。