stream流怎么进行判断
时间: 2024-09-09 11:14:17 浏览: 47
详解JAVA Stream流
5星 · 资源好评率100%
在Java 8的Stream API中,`stream`主要用于对集合进行一次性、线程安全的操作,而其中的判断通常通过`filter`方法实现。`filter(Predicate<T>)`方法接收一个谓词(Predicate),它是一个会返回布尔值的函数,用于测试每个元素是否应该被包含在结果流中。
如果你想根据某个条件对流进行判断,例如检查元素是否满足特定的条件,你可以这样做:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream() // 创建一个流
.filter(n -> n % 2 == 0) // 谓词判断,只保留能被2整除的数字
.collect(Collectors.toList()); // 收集到一个新的列表中
```
在这个例子中,`n -> n % 2 == 0`是一个谓词,它判断一个整数是否为偶数。只有当该条件为真时,`filter`才会让元素进入最终的结果流。
如果你想要多个条件同时成立才判断为有效,可以使用`andThen`或`allMatch`方法,或者结合`or`操作符:
```java
List<String> names = ...;
List<String> filteredNames = names.stream()
.filter(name -> name.startsWith("A") && name.length() > 4)
.collect(Collectors.toList());
```
或者
```java
boolean allValid = names.stream()
.allMatch(name -> name.matches("[a-z]+"));
```
阅读全文