본문 바로가기
공부/Java

함수형 인터페이스

by JERO__ 2022. 3. 1.

1. 함수형 인터페이스

- 단 하나의 추상 메서드만 선언된 인터페이스

 

- 인터페이스 선언

@FunctionalInterface     // 함수형 인터페이스는 단 하나의 추상 메서드만 가져야 함.
interface MyFunction {
    public abstract int max(int a, int b);
}

사용방법1.

MyFunction f = new MyFunction(){
    public int max(int a, int b) {
        return a>b ? a:b;
    }
}

int value1 = f.max(3,5);               // 5

사용방법2.

MyFunction f2 = (a, b) -> a>b ? a:b;
int value2 = f.max(3,5);               // 5

 

EX) 익명 객체를 람다식으로 대체

- 익명 객체

interface Comparator<T> {
    int compare(T o1, T o2);
}

List<String> list = Arrays.asList("abc", "aaa", "bbb", "ddd", "aaa");
Collections.sort(list, new Comparator<String>(){
                               public int compare(String s1, String s2) { 
                                   return s2.compareTo(s1);
                               }
                          });

- 람다식

List list = Arrays.asList("abc", "aaa", "bbb", "ddd", "aaa");
Collections.sort(list, (s1, s2) -> s2.compareTo(s1));

 

'공부 > Java' 카테고리의 다른 글

스트림(Stream) - 1  (0) 2022.03.08
람다식 -> 메서드 참조  (0) 2022.03.01
함수형 인터페이스 : Predicate 결합  (0) 2022.03.01
java.util.function 패키지 (함수형 인터페이스)  (0) 2022.03.01
람다식 (Lambda Expression)  (0) 2022.03.01

댓글