使用示例在Java中流式传输 anyMatch()
Stream anyMatch(Predicate predicate)返回此流的任何元素是否与提供的谓词匹配。如果不需要确定结果,它可能不会评估所有元素的谓词。这是一个短路端子操作。如果一个终端操作在有无限输入时可能会在有限时间内终止,那么它就是短路的。
句法 :
boolean anyMatch(Predicate super T> predicate)
Where, T is the type of the input to the predicate
and the function returns true if any elements of
the stream match the provided predicate,
otherwise false.
注意:如果流为空,则返回 false 并且不评估谓词。
下面给出了一些示例,以更好地理解该函数的实现。
示例 1: anyMatch()函数检查列表中的任何元素是否满足给定条件。
// Java code for Stream anyMatch
// (Predicate predicate) to check whether
// any element of this stream match
// the provided predicate.
import java.util.*;
class GFG {
// Driver code
public static void main(String[] args) {
// Creating a list of Integers
List list = Arrays.asList(3, 4, 6, 12, 20);
// Stream anyMatch(Predicate predicate)
boolean answer = list.stream().anyMatch(n
-> (n * (n + 1)) / 4 == 5);
// Displaying the result
System.out.println(answer);
}
}
输出 :
true
示例 2: anyMatch()函数检查列表中的任何元素是否在第一个索引处具有大写字母。
// Java code for Stream anyMatch
// (Predicate predicate) to check whether
// any element of this stream match
// the provided predicate.
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating a Stream of Strings
Stream stream = Stream.of("Geeks", "fOr",
"GEEKSQUIZ", "GeeksforGeeks");
// Check if Character at 1st index is
// UpperCase in any string or not using
// Stream anyMatch(Predicate predicate)
boolean answer = stream.anyMatch(str -> Character.isUpperCase(str.charAt(1)));
// Displaying the result
System.out.println(answer);
}
}
输出 :
true