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); } }