Function 및 Predicate 둘 다 기능 인터페이스는 Java에서 기능 프로그래밍을 구현하기 위해 Java 8에 도입되었습니다.
함수 인터페이스는 변환을 수행하는 데 사용됩니다. 하나의 인수를 허용하고 결과를 생성할 수 있습니다. 반면에 Predicate는 하나의 인수만 받아들일 수 있지만 부울 값만 반환할 수 있습니다. 상태를 테스트하는 데 사용됩니다.
| Sr. 아니요. | 키 | 함수 | 술어 |
|---|---|---|---|
| 1 | 기본 | 유형 매개변수는 2개를 가질 수 있습니다. 첫 번째는 입력 유형 인수 유형을 나타내고 두 번째 매개변수는 반환 유형을 나타냅니다. | 입력 유형 또는 인수 유형을 나타내는 하나의 유형 매개변수를 사용할 수 있습니다. |
| 2 | 반환 유형 | 모든 유형의 값을 반환할 수 있습니다. | 부울 값만 반환할 수 있습니다. |
| 3 | 메소드 | 추상 메소드 apply()가 있습니다. | 추상 메소드 test()가 있습니다. |
| 4. | 사용 사례 | 조건부 검사를 구현하는 데 사용할 수 있습니다. | 변환 및 반환 값에 사용할 수 있습니다. |
술어의 예
public class Main {
public static void main(String args[]) {
List<Integer> numList = new ArrayList<>();
numList.add(5);
numList.add(10);
Predicate<Integer> pred = i -> i > 5;
numList.stream().filter(pred).forEach(i -> System.out.println(i));
}
} 기능의 예
public class Main {
public static void main(String args[]) {
List<Integer> numList = new ArrayList<>();
numList.add(78);
numList.add(10);
Function<Integer, Integer> fun = i -> i / 2;
numList.stream().map(fun).forEach(System.out::println);
}
}