매칭
스트림 클래스는 최종 처리 단계에서 요소들이 특정 조건에 만족하는지 조사할 수 있도록 세 가지 매칭 메소드를 제공하고 있다. allMatch()
메소드는 모든 쇼소들이 매개값으로 주어진 Predicate 의 조건을 만족하는지 조사하고, anyMatch()
메소드는 최소한 한 개의 쇼소가 매개값으로 주어진 Predicate
의 조건을 만족하는지 조사한다. 그리고 noneMatch()
는 모든 요소들이 매개값으로 주어진 Predicate
의 조건을 만족하지 않는지 조사한다.
리턴 타입 | 메소드(매개 변수) | 제공 인터페이스 |
---|---|---|
boolean | allMatch(Predicate<T> predicate) anyMatch(Predicate<T> predocate) noneMatch(Predicate<T> predicate) |
Stream |
boolean | allMatch(IntPredicate<T> predicate) anyMatch(IntPredicate<T> predocate) noneMatch(IntPredicate<T> predicate) |
IntStream |
boolean | allMatch(LongPredicate<T> predicate) anyMatch(LongPredicate<T> predocate) noneMatch(LongPredicate<T> predicate) |
LongStream |
boolean | allMatch(DoublePredicate<T> predicate) anyMatch(DoublePredicate<T> predocate) noneMatch(DoublePredicate<T> predicate) |
DoubleStream |
모든 요소가 2의 배수인지, 하나라도 3의 배수가 존재하는지, 모든 요소가 3의 배수가 아닌지를 조사하는 코드다.
import java.util.Arrays;
public class MatchExample {
public static void main(String[] args){
int[] intArr = { 2, 4, 6 };
boolean result = Arrays.stream(intArr)
.allMatch(a -> a%2 == 0);
System.out.println("모두 2의 배수인가? " + result);
result = Arrays.stream(intArr)
.anyMatch(a -> a%3 == 0)
System.out.println("하나라도 3의 배수가 있는가? " + result);
result = Arrays.stream(intArr)
.noneMatch(a -> a%3 == 0);
System.out.println("3의 배수가 없는가? " + result);
}
}