본문 바로가기

자바

[Java] Predicate 인터페이스

728x90

 

 

/* Predicate 인터페이스 */

함수형 프로그래밍을 구현하기 위해 jdk 1.8에 나왔다.

 

/* Predicate 의 test() */

boolean test(T t);

 

test() 메서드는 제너릭 타입 T t로 특정 작업(함수형 프로그래밍, 람다식)을 수행한다.

 

/* 예제1 */

Predicate <Integer> predicate = (input) -> input > 100;

predicate.test(10); //false
predicate.test(200); //true

 

위의 예제를 보면 함수형 프로그래밍을 만들면 test 메서드를 따로 정의할 필요가 없다. (이미 정의가 되어있다)

 

따라서 다음과 같은 식도 가능하다

/* 예제2 */

public void deleteById(int id){
    // Todo는 객체, todos는 Todo를 담은 ArrayList
    Predicate<Todo> predicate
            = (todo) -> todo.getId() == id;
        
    todos.removeIf(predicate);
}

 

removeIf의 패러미터 타입은 Predicate이다.

 

728x90

'자바' 카테고리의 다른 글

[JAVA] 컬렉션 - LinkedList  (0) 2024.02.07
[JAVA] 벡터 Vector  (0) 2024.02.06
[JAVA] 컬렉션 - ArrayList  (0) 2024.02.05
[JAVA] 람다식 (Lambda Expression)  (0) 2023.11.23
[JAVA] 제네릭 타입  (0) 2023.11.23