상세 컨텐츠

본문 제목

[Lambda] 함수형 인터페이스 : BiFunction

Java

by kwanghyup 2020. 6. 19. 02:44

본문

import java.util.Arrays;
import java.util.function.BiFunction;

public class BiFunctionTest {
    /*
        두 개의 매개변수를 받아 가공 후 값을 반환한다.
        두 매개변수와 반환값의 타입은 모두 다를 수 있다.
        재네릭 결정 : BiFunction<매개변수타입, 매개변수타입, 반환타입>
        public R apply (T t, U u) 구현
    */

    public static void main(String[] args) {
        // 문자열과 반복횟수를 매개변수로 받아 문자열 배열을 반환
        
        // 익명 객체 
        BiFunction<String,Integer,String[]> biFunction = new BiFunction<String, Integer, String[]>() {
            @Override
            public String[] apply(String s, Integer loop) {
                String[] array = new String[loop];
                for (int i = 0; i < loop ; i++) {
                    array[i] = s + (i+1);
                }
                return array;
            }
        };
		
        // 람다 
        BiFunction<String,Integer,String[]> lambda = (s,loop)->{
            String[] array = new String[loop];
            for (int i = 0; i < loop ; i++) {
                array[i] = s + (i+1);
            }
            return array;
        };

        String str = "count";
        
        // 익명 객체 테스트 
        String[] arr = biFunction.apply(str,10);
        System.out.println(Arrays.toString(arr));
        
        // 람다 테스트 
        arr = lambda.apply(str,5);
        System.out.println(Arrays.toString(arr));
    }
}

관련글 더보기

댓글 영역