allmatch用于判断流中所有元素是否都满足谓词条件,空流返回true,遇第一个不满足即短路返回false;常用于校验全正数、非空字符串、对象状态等场景。

allMatch 是 Java Stream API 中的终端操作,用于判断流中**所有元素是否都满足给定的谓词(Predicate)条件**。只要有一个元素不满足,就立即返回 false;如果流为空,也返回 true(空集默认满足“全部匹配”逻辑)。
基本用法:传入 Predicate 返回布尔值
语法很简单:
boolean result = stream.allMatch(predicate);
其中 predicate 是一个 java.util.function.Predicate<t></t>,接收一个元素并返回 boolean。
- 如果流中每个元素都让 predicate 返回
true,则allMatch返回true - 遇到第一个
false就短路终止,不再检查后续元素 - 空流(如
Stream.empty())直接返回true
常见使用场景与示例
✅ 检查列表是否全为正数
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
List<integer> numbers = Arrays.asList(2, 4, 6, 8); boolean allPositive = numbers.stream().allMatch(n -> n > 0); // true</integer>
✅ 检查字符串列表是否全非空且长度 ≥ 3
List<string> words = Arrays.asList("cat", "dog", "bird");
boolean valid = words.stream()
.allMatch(s -> s != null && s.length() >= 3); // true</string>
✅ 处理对象集合:检查所有用户是否已激活
record User(String name, boolean active) {}
List<user> users = List.of(new User("Alice", true), new User("Bob", true));
boolean allActive = users.stream().allMatch(User::active); // true</user>
注意边界情况
- 空集合或空流返回 true:这是数学上“全称命题在空集上恒真”的体现,不是 bug
-
null 元素可能引发 NullPointerException:若 predicate 中未判空(如
s.length()),需提前防护 -
不保证顺序性:对并行流(
parallelStream())同样适用,但短路行为在并行下仍有效(JDK 会协调完成)
对比其他匹配方法
-
allMatch:全部满足 →true -
anyMatch:至少一个满足 →true -
noneMatch:全部都不满足 →true
三者都是短路、高效、不可重复使用的终端操作。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










