IT수업/JAVA PART2

IT 수업 14주차 (72) 함수형 인터페이스 2

워제하 2024. 3. 28. 10:53

 

● 제공되는 함수형 인터페이스들

- Function<T, R>:
apply 메서드를 가지고 있어서 하나의 인자(T)를 받아서 결과(R)를 반환하는 함수형 인터페이스입니다.

Function<파라미터,반환> func1=()->{}; 으로 하면 된다.

- Supplier<T>:
get 메서드를 가지고 있어서 어떠한 인자도 받지 않고 결과만을 제공하는 함수형 인터페이스입니다.

- Consumer<T>:
accept 메서드를 가지고 있어서 어떠한 인자를 받아서 결과를 반환하지 않는 함수형 인터페이스입니다.

- Predicate<T>:
test 메서드를 가지고 있어서 어떠한 인자를 받아서 불리언 결과를 반환하는 함수형 인터페이스입니다.

-UnaryOperator<T>:
apply 메서드를 가지고 있어서 하나의 인자를 받아서 동일한 타입의 결과를 반환하는 함수형 인터페이스입니다.

-BinaryOperator<T>:
apply 메서드를 가지고 있어서 두 개의 인자를 받아서 동일한 타입의 결과를 반환하는 함수형 인터페이스입니다.

 

 

 

 

 

 

- 합, 곱셈

< 실행화면 >

 

 

 

 

- 누적 합

< 실행화면 >

 

 

 

 

- 정수형 데이터만 필터링해 list로 반환

어떤 데이터가 들어올지몰라 Object로 받고 받은 데이터들 중 정수형만 필터링해 list에 반환하는 것을 구현 할 것이다.

 

 

< 실행화면 >

 

 

 

 

 

- null 체크 기능

 

< 실행화면 >

 

 

 

 

 

- 인터페이스 간 조합

 

< 실행화면 >

 

위에서 선언한 func1과 func2를 하는데 먼저 곱하고 더하기를 해주기 때문에 50이 나왔다.

 

순서를 바꿔서 func2를 실행하고 func1을하면 먼저 더하고 이후에 곱해주므로 100이라는 결과를 볼 수 있다.

 

< 실행화면 >

 

 

 

이번에는 object로 받은  func4로 정수형만 필터링하고 func3으로 누적합을 구해 볼 것이다.

 

< 실행화면 >

 

 

 

 

- BinaryOperator, BiFunction 사용

 

 

 

- 이중 function 사용

< 실행화면 >

 

 

여기서 하나 더 추가해본다.

 

< 실행화면 >

 

 

 

 

< 연습문제 >

01 func1완성 - List<String>에 저장된 문자열 리스트에서 길이가 5이상인 문자열의 개수를 반환
02 func2완성 - List<Integer>에 저장된 숫자들의 제곱한 값의 합을 반환
03 func3완성 - List<String>에서 각 문자열의 첫 글자를 추출하여 대문자로 반환하여 리턴

 

 

< 실행화면 >