29. 함수(람다식)형 인터페이스

Jan 05, 2024
29. 함수(람다식)형 인터페이스
💡
밑 내용을 읽다 보면 함수를 나타내는 또는 표현 하는 이라는 단어들이 나올텐데 여기서의 함수는 입력을 받아서 표현하는 작은 단위의 코드를 의미한다.
 

Stream.map(Function 인터페이스)

💡
map은 기존에 있는 리스트를 값을 변경 해서 새로운 list를 만들때 사용하며 Function 인터페이스를 소유하고 있다. Function<T(매개변수),R(반환타입)> 인터페이스는 특정 객체를 받아서 특정 객체를 반환하는 추상 인터페이스로 추상메소드 apply( )는 T타입의 객체를 입력으로 하고 R타입의 객체를 반환한다
예제 코드
//Function 인터페이스 형태 public interface Function<T,R>{ R apply(T t) }
package ex14.exaple1; import java.util.Arrays; import java.util.List; public class CopyEx02 { public static void main(String[] args) { List<Integer>list = Arrays.asList(1,2,3,4); //.stream은 흙을 뿌린다.(값을 하나 씩 타입을 벗겨 모래에 버린다.) // map이라는건 흙이 묻은 값들을 물을 뿌려 씻겨준다고 보면된다. //map - 가공해서 복사한다. List<Integer> newList = list.stream().map(i -> i*100).toList(); //.to list는 list의 저장하는 문법 //출력하는데 forEach()사용 newList.stream().forEach(i -> System.out.println(i));//Consumer 인터페이스 사용 } }
 

Stream.filter(Predicate 인터페이스)

💡
filter는 주어진 조건에 맞는 list의 저장된 값만 출력 하고 싶을 때 사용 하며 Predicate 인터페이스를 소유하고 있다. Predictae 인터페이스는 단일 값을 매개 변수로 사용하고 true 또는 False를 반환한다.
예제 코드
package ex14.exaple1; import java.util.Arrays; import java.util.List; public class CopyEx03 { public static void main(String[] args) { List<Integer> list = Arrays.asList(1,2,3,4); //filter Stream은 컬렉션에서 지원 List<Integer> newList = list.stream().filter(i -> i < 3).toList(); //.to list는 list의 저장한는 문법 newList.stream().forEach(i-> System.out.println(i)); } //출력하는데 forEach()사용 }
 
 

Stream.forEach(Consumer 인터페이스)

💡
Consumer 인터페이스는 값을 반환하지 않고 값을 소비하는 함수를 나타낸 함수형 인터페이스로 Consumer 구현은 값을 인쇄하거나 파일에 기록하거나 네트워크 등을 통해 값을 전달하는 객체가 될 수 있다. 윗 예제들의 값을 출력할 때 Counmser 인터페이스를 사용한 것처럼 사용한다.
예제 코드
Consumer<Integer> consumer = (value) -> System.out.println(value);
 
 

Supplier 인터페이스

💡
우리가 사용 할 일은 없겠지만 알고만 코드를 읽을 수는 있게 알고 있기 Supplier 인터페이스는 값을 제공하는 함수를 나타내는 함수형 인터페이스이다.
예제 코드
Supplier<Integer> supplier = () -> new Inger((int) (Math.random() * 100));
 
 
Share article
RSSPowered by inblog