37 lines
890 B
Java
37 lines
890 B
Java
|
// streams/Matching.java
|
|||
|
// <20>2016 MindView LLC: see Copyright.txt
|
|||
|
// Demonstrates short-circuiting of *Match() operations
|
|||
|
import java.util.stream.*;
|
|||
|
import java.util.function.*;
|
|||
|
import static streams.RandInts.*;
|
|||
|
|
|||
|
interface Matcher extends
|
|||
|
BiPredicate<Stream<Integer>, Predicate<Integer>> {}
|
|||
|
|
|||
|
public class Matching {
|
|||
|
static void show(Matcher match, int val) {
|
|||
|
System.out.println(
|
|||
|
match.test(
|
|||
|
IntStream.rangeClosed(1, 9)
|
|||
|
.boxed()
|
|||
|
.peek(n -> System.out.format("%d ", n)),
|
|||
|
n -> n < val));
|
|||
|
}
|
|||
|
public static void main(String[] args) {
|
|||
|
show(Stream::allMatch, 10);
|
|||
|
show(Stream::allMatch, 4);
|
|||
|
show(Stream::anyMatch, 2);
|
|||
|
show(Stream::anyMatch, 0);
|
|||
|
show(Stream::noneMatch, 5);
|
|||
|
show(Stream::noneMatch, 0);
|
|||
|
}
|
|||
|
}
|
|||
|
/* Output:
|
|||
|
1 2 3 4 5 6 7 8 9 true
|
|||
|
1 2 3 4 false
|
|||
|
1 true
|
|||
|
1 2 3 4 5 6 7 8 9 false
|
|||
|
1 false
|
|||
|
1 2 3 4 5 6 7 8 9 true
|
|||
|
*/
|