Java Stream allMatch() 示例
Stream allMatch(Predicate predicate) 返回此流的所有元素是否与提供的谓词相匹配。如果不是为了确定结果,它可能不会在所有元素上评估谓词。这是一个 _ 短路的终端操作。如果一个终端操作在面对无限的输入时,可以在有限的时间内结束,那么它就是短路的。
语法:
boolean allMatch(Predicate <? super T> predicate)
其中,T是输入到谓词的类型
并且该函数在以下情况下返回真:如果流的所有元素
匹配所提供的谓词或
流是空的,否则为假。
注意: 如果流是空的,那么返回true,谓词不会被评估。一旦任何函数使用了流,它就不能再被使用,直到它被重新初始化。
例子1: allMatch()函数用于检查所有元素是否被3整除。
// Java code for Stream allMatch
// (Predicate predicate) to check whether
// all elements 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<Integer> list = Arrays.asList(3, 4, 6, 12, 20);
// Check if all elements of stream
// are divisible by 3 or not using
// Stream allMatch(Predicate predicate)
boolean answer = list.stream().allMatch(n-> n % 3 ==0);
// Displaying the result
System.out.println(answer);
}
}
输出:
false
例2: allMatch()函数用于检查字符串的长度是否大于2。
// Java code for Stream allMatch
// (Predicate predicate) to check whether
// all elements 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<String> stream = Stream.of("Geeks", "for",
"GeeksQuiz", "GeeksforGeeks");
// Check if all elements of stream
// have length greater than 2 using
// Stream allMatch(Predicate predicate)
boolean answer = stream.allMatch(str -> str.length() > 2);
// Displaying the result
System.out.println(answer);
}
}
输出:
true
例3: allMatch()函数用于检查所有字符串是否在第一个索引处有UpperCase字符。
// Java code for Stream allMatch
// (Predicate predicate) to check whether
// all elements 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<String> stream = Stream.of("Geeks", "for",
"GeeksQuiz", "GeeksforGeeks");
// Check if Character at 1st index is
// UpperCase in all strings or not using
// Stream allMatch(Predicate predicate)
boolean answer = stream.allMatch(str-> Character
.isUpperCase(str.charAt(1)));
// Displaying the result
System.out.println(answer);
}
}
输出:
false
例子4: 使用同一个数据流完成多个函数
// In case we want multiple function to be done.
import java.util.stream.IntStream;
public class MultipleStreamFunction {
public static void main(String[] args) {
final String sample = "Om Sarve Bhavantu Sukhinah";
// converting to Ascii
IntStream intstreams = sample.chars();
// All match to check if all Ascii value greater than 100
boolean answer = intstreams.allMatch(c -> c > 100);
System.out.println(answer);
// Need to initialize the stream again
// to avoid runtime exception
intstreams = sample.chars();
// All match to check if all Ascii value greater than 31
answer = intstreams.allMatch(c -> c > 31);
System.out.println(answer);
}
}
输出:
false
true