作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
{ Syste-6ren">
我遇到了这个代码片段:
List<String> colors = Arrays.asList("red", "green", "yellow");
Predicate<String> test = n ->
{
System.out.println("Searching…");
return n.contains("red");
};
colors.stream().filter(c -> c.length() > 3).allMatch(test);
输出显示给我
Searching...
当我拿走 .filter(c -> c.length() > 3)
时,它显示给我
Searching...
Searching...
经过一些其他测试后,我发现最后一个元素(黄色)从未经过测试!
这是为什么!?
有人能解释一下它背后的机制吗?
非常感谢!!!
最佳答案
你打给了allMatch
.这只是想知道“每一项都匹配这个谓词吗?”。这将遍历流并评估每个项目的谓词,直到找到一个错误的谓词,因为一旦找到错误,它就可以肯定地说并非每个项目都与谓词匹配。
文档说
May not evaluate the predicate on all elements if not necessary for determining the result.
一旦找到谓词为假的项,它就不会评估任何其他项。
关于java - Java 谓词背后的机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57687003/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!