gpt4 book ai didi

java - Java Stream().noneMatch(...) 和 !stream().anyMatch(...) 之间的区别

转载 作者:行者123 更新时间:2023-12-02 05:00:34 25 4
gpt4 key购买 nike

如果我这样做,性能或其他方面是否有任何差异

  1. list.stream().noneMatch(...)
  2. !list.stream().anyMatch(...)

最佳答案

两者noneMatchanyMatch是短路流操作。这意味着当结果得知时,他们将停止处理输入。

在您的情况下,当它们确实找到与传入的谓词匹配时,它们都会停止。唯一的区别是 noneMatch 将返回 false match 和 anyMatch 将返回 true。对 anyMatch 的结果求反会使两个表达式在逻辑上等效。

假设相同的列表和相同的谓词,任何性能差异都可以忽略不计。这两种方法都会在第一个匹配(如果有)时短路,如果没有实际匹配,则遍历整个列表,并且一个否定运算符也不会产生影响。

关于java - Java Stream().noneMatch(...) 和 !stream().anyMatch(...) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57779773/

25 4 0