-
인터페이스 Predicate<T>JAVA 2021. 4. 5. 17:09
Predicate ?
Predicate input에 대한 result가 boolean으로 나오cate input에 대한 result가 boolean으로 나오는 interface이다.
ex)
Predicate<Integer> p = i -> i%2 = 0; result = true or false
Predicate의 결합
and() - &&, or() -||, negate() - !로 두 Predicate를 하나로 결합(default 메서드)
Predicate<Integer> p = i -> i < 100; Predicate<Integer> q = i -> i < 200; Predicate<Integer> r = i -> i%2 == 0; Predicate<Integer> notP = p.negate(); // i >= 100 Predicate<Integer> all = notP.and(q).or(r); // 100 <= i && i <200 || i%2 ==0) Predicate<integer> all2 = notP.and(q.or(r)); // 100 <= i && (i < 200 || i%2 ==0) System.out.println(all.test(2)); //true System.out.println(all2.test(2)); //false
등가비교를 위한 Predicate의 작성에는 isEqual를 사용(static 메서드)
Predicate<String> p = Predicate.isEquals(str1) // isEquals()은 static 메서드 Boolean result = p.test(str2) // str1과 str2가 같은지 비교한 결과를 반환 - boolean result = Predicate isEquals(str1).test(str2) // str1.equals(str2)와 같다.
'JAVA' 카테고리의 다른 글
#Builder 패턴 (0) 2021.05.11 컬렉션 프레임웍과 함수형 인터페이스 (0) 2021.04.05 람다식 (0) 2021.04.05 JRE , JDK ? (0) 2021.03.04 JAVA란? (0) 2021.03.04