ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인터페이스 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

    댓글

Designed by Tistory.