java用stream流怎么判断一个集合元素全部在另一个集合中
时间: 2024-09-15 17:06:13 浏览: 37
在Java中,你可以使用`Stream` API 来判断一个集合的所有元素是否都在另一个集合中。这通常通过`allMatch()`方法完成,这个方法接受一个谓词(Predicate),如果所有元素都满足该谓词(即都在目标集合中),则返回`true`。
下面是一个例子:
```java
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 创建两个Set作为源集合和目标集合
Set<String> sourceSet = new HashSet<>(Arrays.asList("a", "b", "c"));
Set<String> targetSet = new HashSet<>(Arrays.asList("a", "b"));
// 使用stream和allMatch()判断
boolean allInTarget = sourceSet.stream()
.allMatch(targetSet::contains);
System.out.println(allInTarget); // 输出: true,因为sourceSet的所有元素都在targetSet中
}
}
```
在这个示例中,`sourceSet.stream().allMatch(targetSet::contains)`表示从`sourceSet`中对每个元素应用`targetSet::contains`谓词,如果所有的元素都能在`targetSet`中找到,则`allMatch()`返回`true`。