stream流的过滤怎么使用
时间: 2023-06-23 15:59:35 浏览: 125
在 Java 中,可以使用 Stream API 进行流的过滤。具体来说,可以使用 `filter()` 方法对流中的元素进行过滤。该方法接受一个 `Predicate` 参数,用于判断流中的每个元素是否符合条件。如果符合条件,则将该元素包含在新的流中,否则将其过滤掉。
例如,假设有一个包含整数的流 `intStream`,我们希望将其中大于 5 的元素过滤出来,可以使用以下代码:
```
IntStream filteredStream = intStream.filter(n -> n > 5);
```
这将生成一个新的流 `filteredStream`,其中只包含大于 5 的整数。接下来,我们可以对该流进行进一步的处理,例如使用 `forEach()` 方法对每个元素进行处理。
注意,`filter()` 方法返回的是一个新的流,原始的流并不会受到影响。因此,如果需要对原始流进行操作,可以将过滤后的流重新赋值给原始流。
相关问题
stream流过滤
在Java 8中,可以使用Stream API来过滤流(Stream)中的元素。Stream API提供了filter()方法,可以根据指定的条件过滤出符合条件的元素,过滤后返回一个新的Stream。
例如,假设我们有一个包含多个字符串的List,我们想要过滤出其中长度大于等于5的字符串,可以使用以下代码:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "grape", "watermelon");
Stream<String> stream = list.stream();
Stream<String> filteredStream = stream.filter(s -> s.length() >= 5);
filteredStream.forEach(System.out::println);
```
上述代码中,我们首先使用Arrays.asList()方法创建了一个包含多个字符串的List。接着,我们通过list.stream()方法获取一个Stream对象,并使用filter()方法过滤出长度大于等于5的字符串。最后,我们使用forEach()方法遍历新的Stream对象,并输出其中的元素。
执行上述代码,输出结果为:
```
apple
banana
orange
watermelon
```
可以看到,输出结果中只包含长度大于等于5的字符串。
stream流过滤list
可以使用Java 8中的Stream API对List进行过滤操作,例如:
List<String> list = Arrays.asList("apple", "banana", "orange", "pear");
List<String> filteredList = list.stream().filter(s -> s.startsWith("a")).collect(Collectors.toList());
这段代码会将List中以"a"开头的字符串过滤出来,存储在filteredList中。
阅读全文