java - java 8 中 anyMatch 和 findAny 的区别

标签 java arrays java-8 java-stream

我有一个 Array 并想对其元素执行一些匹配。

我开始知道它可以在 java 8 中以两种方式完成:

String[] alphabet = new String[]{"A", "B", "C"};

任意匹配:

Arrays.stream(alphabet).anyMatch("A"::equalsIgnoreCase);

查找任何:

Arrays.stream(alphabet).filter("a"::equalsIgnoreCase)
        .findAny().orElse("No match found"));

据我所知,两者都在做同样的工作。但是,我找不到更喜欢哪一个?

谁能说清楚它们之间的区别是什么。

最佳答案

它们在内部做同样的工作,但是它们的返回值不同。 Stream#anyMatch()返回一个 booleanStream#findAny()返回与谓词匹配的对象。

关于java - java 8 中 anyMatch 和 findAny 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44179756/

相关文章:

Python for循环迭代和访问列表列表

java - 将并行数组流简化为单个数组

java - 单个 Activity 中的多个 WebView

java - 字符串对象及其文字是否被垃圾收集?

java - i == (i = 2) 的结果是什么?

无法反序列化访问实例字段和方法的 Java 8 lambda

java - 使用 Streams 同时计算总和和平方和

java - 打印所有高于所有叶节点的 N 级节点

arrays - 如何计算每次遇到零时重置的累积和

arrays - 从多列创建 JSON 对象数组