我有一个 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()
返回一个 boolean
而 Stream#findAny()
返回与谓词匹配的对象。
关于java - java 8 中 anyMatch 和 findAny 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44179756/