java anymatch_Java Stream anyMatch() API

Java Stream anyMatch(谓词谓词)是终端短路操作,用于检查流中是否包含具有提供的predicate任何匹配元素。

1. Stream anyMatch() method

1.1. Syntaxboolean anyMatch(Predicate super T> predicate)

这里的predicate是一个无干扰的,无状态的谓词,适用于流的元素。

1.2. Description这是短路端子操作。

它返回此流的任何元素是否与提供的谓词匹配。

如果不需要确定结果,则可能不会对所有元素都评估谓词。 遇到第一个匹配元素时,方法将返回true 。

如果流为空,则返回false ,并且不对谓词求值。

2. Java Stream anyMatch() example

用于检查是否有任何流元素与方法参数谓词匹配的Stream.anyMatch()方法的Java示例。import java.util.stream.Stream;

public class Main

{

public static void main(String[] args)

{

Stream stream = Stream.of("one", "two", "three", "four");

boolean match = stream.anyMatch(s -> s.contains("four"));

System.out.println(match);//true

}

}

Program output.true

3. Difference between anyMatch() vs contains()

从理论上讲,当我们要检查列表中是否存在元素时, anyMatch()和contains()之间没有区别。

Parallelism可能会为非常大的列表带来优势,但是我们不应该每次都随意使用Stream.parallel()并假设它可以使事情变得更快。 实际上,调用parallel()可能会降低小型流的性能。

4. Conclusion

在某些情况下,我们需要检查流中是否至少有一个元素时, Stream.anyMatch()方法会很有用。

较短的版本list.contains()也具有相同的作用,可以代替使用。

Reference :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值