[JAVA] 람다 표현식

XXXX·2024년 1월 10일
0


람다 표현식 (Lambda Expressionn)

  • 메소드 대신 하나의 식으로 표현하는 것
  • 익명 함수 (Anonymous function)

반환타입 메소드이름 (매개변수, ...) {
    실행문
}

public int sum (int x, int y) {
   return x + y;
}

🔼 일반적인 메소드 형태


(매개변수, ...) -> { 실행문 ... }
(int x, int y) -> {return x + y;}

🔼 람다 표현식


람다식 장점

  • 일반적으로 코드가 간결해짐
  • 코드 가독성이 높아짐
  • 생산성이 높아짐

람다식 단점

  • 재사용이 불가능 (익명)
  • 디버깅 어려움
  • 재귀함수로는 맞지 않음

// Java 프로그래밍 - 람다식

interface ComputeTool {
    public abstract int compute(int x, int y);

    public abstract int compute2(int x, int y);
}



public class Main {

    public static void main(String[] args) {

        ComputeTool cTool1 = new ComputeTool() {
            @Override
            public int compute(int x, int y) {
                return x + y;
            }

            public int compute2(int x, int y) {
                return x - y;
            }
        };
        System.out.println(cTool1.compute(1, 2));
        // 인터페이스를 이용하는 기존의 방법 (익명 클래스)

        // 람다식 (재사용 불가!)
//        ComputeTool cTool2 = (x, y) -> { return x + y; };
//        System.out.println(cTool2.compute(1, 2));

    }
}

// Practice
// 아래 인터페이스를 이용하여 익명클래스로 구현한 내용을 람다식으로 구현해보세요.

interface CompareTool {
    public abstract int getMaxNum(int num1, int num2);
}

public class Practice {
    public static void main(String[] args) {
        // Test code
        CompareTool cTool = new CompareTool() {
            @Override
            public int getMaxNum(int num1, int num2) {
                return num1 > num2? num1 : num2;
            }
        };
        System.out.println(cTool.getMaxNum(10, 11));


        // 람다식으로 작성
        CompareTool cTool2 = (x, y) -> { return x > y? x : y; };
        System.out.println(cTool2.getMaxNum(10, 11));
    }
}

0개의 댓글