250205 TIL | 람다식

2025. 2. 5. 17:47·🏕 멋사 Java 백엔드 13기/TIL

람다식

개념 

: 메서드(익명 함수)를 하나의 식으로 표현함

(매개변수_목록) -> { 로직 }
  • 자바 8에서 도입
  1. 매개변수 : 여러 개의 매개변수 사용, 매개변수의 타입은 컴파일러가 자동으로 추론할 수 있어 생략
  2. 로직 : 람다식이 실제로 수행할 코드

작성 규칙

  1. 메서드의 이름, 반환타입 제거하고 →를 블록{} 앞에 추가한다.
  2. 반환값이 있는 경우, 식이나 값만 적고 return은 생략한다.
  3. 매개변수 타입이 추론 가능 시 매개 변수 타입 생략 가능
  4. 매개변수가 1개인 경우 () 생략 가능
  5. 로직 문장이 1개인 경우 {} 생략 가능
    1. 단, 한 문장이 retrun인 경우 {} 생략 불가
  • 람다식 적용 전
int max(int a, int b) {
  return a > b ? a : b;
}
  • 람다식 적용 후
(a, b) ->  a > b ? a: b

사용 예시

public class Main {
    public static void main(String[] args) {
        //익명함수로 메인 클래스 내에서 구현하여 호출 
        MaxNumber maxNumber = new MaxNumber() {
            @Override
            public int getMaxNumber(int x, int y) {
                return x >= y ? x : y;
            }
        };
        System.out.println(maxNumber.getMaxNumber(3,1));
    }
}
public class Main {
    public static void main(String[] args) {
        //람다식을 이용하여 호출
        MaxNumber maxNumber = (x, y) -> x >= y ? x : y;
        System.out.println(maxNumber.getMaxNumber(3,1));
    }
}
  • MaxNumber의 인스턴스를 자주 사용할 시, 매번 오버라이딩해 작성하기 때문에 코드가 복잡해질 수 있음.
  • 이를 람다식으로 구현해 간결화시킴.

동작 원리

Runnable r = () -> System.out.println("Hello, World!");
Runnable r = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, World!");
    }
};
  • 자바 컴파일 시 람다식 → 익명 클래스로 변환
  • 익명 클래스의 인스턴스를 생성하는 방식으로 동작
  • 즉, 람다식은 익명 클래스의 인스턴스를 간결히 생성하는 방식임.

장점

  • 간결한 함수 표현
  • 코드 가독성 상승
  • 재 사용성 상승

'🏕 멋사 Java 백엔드 13기 > TIL' 카테고리의 다른 글

250225 TIL : RESTController  (0) 2025.02.25
250218 TIL | 상속 매핑 전략과 임베디드 타입  (0) 2025.02.18
250121 TIL | AOP  (2) 2025.01.21
240117 TIL : DI  (1) 2025.01.17
[멋쟁이사자처럼 부트캠프 TIL 회고] 241231 백엔드 Java 부트캠프 21일차  (2) 2024.12.31
'🏕 멋사 Java 백엔드 13기/TIL' 카테고리의 다른 글
  • 250225 TIL : RESTController
  • 250218 TIL | 상속 매핑 전략과 임베디드 타입
  • 250121 TIL | AOP
  • 240117 TIL : DI
Cofish
Cofish
  • Cofish
    Codesea
    Cofish
  • 전체
    오늘
    어제
    • 분류 전체보기 (19)
      • 🏕 멋사 Java 백엔드 13기 (17)
        • TIL (15)
        • 자료구조 (2)
      • 네트워크 (2)
        • TCP•IP (2)
      • 🎨 블로그 꾸미기 (0)
      • 💬 일상 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    db 기초
    백엔드 java 부트캠프
    MySQL
    java 기초
    #멋쟁이 사자처럼
    멋쟁이사자처럼 #부트캠프
    부트캠프
    디자인 패턴
    멋쟁이 사자처럼
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Cofish
250205 TIL | 람다식
상단으로

티스토리툴바