【问题标题】:What is the difference between allMatch and anyMatch behaviour for empty streams [duplicate]空流的 allMatch 和 anyMatch 行为有什么区别[重复]
【发布时间】:2016-04-26 15:53:31
【问题描述】:

除了它们对任何集合(甚至是空集合)的行为相同之外,我们能否做到这一点?

【问题讨论】:

  • 这在 javadoc 中有明确的记录。你的困惑从何而来?
  • 我是在遇到这个问题的时候看的,有人可能会先看stackoverflow。它说可以在这里放置问答提示。
  • 可以的。对于自我回答的问题,我们仍然有相同的质量期望。您的问题目前不符合这些期望。例如,展示一些研究成果。是什么让您相信存在差异或没有差异?
  • 是的,您可以先查看 StackOverflow。你也可以只写 10 行代码来尝试一下。了解如何学习如何在 Internet 上查找信息是软件开发中非常重要的技能(实际上,在所有生活中),您应该努力提高这些技能领域。这意味着在您用尽其他资源之前不要询问。
  • 来自英语词典; “全部” - 用于指代特定群体或事物的全部数量或范围。 “任何” - 用于指代事物中的一个或部分,无论有多少或多少。

标签: java java-stream


【解决方案1】:

没有。您可以简单地检查一下:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        System.out.println("Any match returns " + list.stream().anyMatch(number -> number > 0));
        System.out.println("All match returns " + list.stream().allMatch(number -> number > 0));
    }
}

输出:

Any match returns false
All match returns true

因此,anyMatch 对于空流返回 false,但 allMatch 返回 true。在这种情况下,你在它们里面有什么条件并不重要。这对我来说并不明显。希望对某人有所帮助。

【讨论】:

  • 您已经回答了您自己的问题,但问题的含义是“全部”还是“任何”?你在回答没有人会问的问题吗?
猜你喜欢
  • 2022-12-09
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 2020-01-06
  • 2021-04-06
  • 2017-02-17
  • 2011-09-27
相关资源
最近更新 更多