Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 8에서 함수와 술어의 차이점

<시간/>

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