본문 바로가기

JAVA

람다4 Predicate 람다 조건식

람다와 스트림3 Predicate 람다 조건식

predicate = 조건식 boolean 값을 반환
and() , or() , nagate() = not , 등으로 두 predicate를 하나로 결합(default 메서드)

 

predicate 는 함수형 인터페이스이다.
predicate<Integer> p = i -> i<100;
predicate<Integer> q = i -> i<200;
predicate<Integer> r = i -> i%2 == 0;
predicate 는 조건식을 가지고 있다,
true / false의 결과값을 반환한다.

 

predicate<Integer> notP = p.negate() // p의 결과값을 반대로 반환한다. 즉(100 <= i)
predicate<Integer> all = notP.and(q).or(r); 의 식은
//100 <= i && i < 200 || i%2 == 0
notP = (100 <= i)
.and(q) = (&& i < 200)
.or(r) = (|| i%2 == 0)

 
predicate<Integer> all2 = notP.and(a.or(r))
// 100<= i && (i < 200 || i%2 == 0)
notP = (100 <= i)
.and(a.or(r)) = i < 200 || i%2 == 0


pridicate 를 사용시에는 predicate가 가진 추상메서드 test()를 호출
all.test(2); //true
all2.test(2); //true

 
등가비교를 위한 pridicate의 작성에는 isEquals()를 사용 (static 메서드)
predicate<String> p = predicate.isEquals.isEquals(str1); isEquals()는 static 메서드
boolean result = p.test(str2); // str1과 str2가 같은지 비교 결과를 반환


boolean result = predicate.isEquals(str1).test(str2)

'JAVA' 카테고리의 다른 글

람다6 메소드 참조  (0) 2023.03.15
람다5 함수 두개를 연결 andThan  (0) 2023.03.15
람다3 함수형 인터페이스  (0) 2023.03.15
람다2  (0) 2023.03.14
람다1  (0) 2023.03.14