본문 바로가기

자바

[자바] 람다식 개념 및 표현법

람다(lambda )

람다식은 식별자가 필요 없으며 익명 함수를 지칭하는 용어이다.

자바 8부터 람다식을 지원하며 문법이 간결하여 가독성 면에서 큰 장점을 불러온다.(람다를 쓰지말라는 상급자 분들도 있습니다.)

 

장점

  • 코드가 간결하다
  • 지연 연산을 통한 불필요한 연산을 최소화 한다.
  • 멀티 쓰레드를 활용하여 병렬처리가 가능하다.
  • 가독성이 향상된다.

 

단점

  • 람다stream을 통한 단순 for문, while문 사용시 성능 저하가 발생 가능하다.
  • 무명함수는 재사용이 불가능하다.
  • 불필요한 람다식은 가독성을 떨어뜨린다.(비슷한 함수를 계속 중복생성할 수 있음)
  • 디버깅하기 까다롭다.

람다식 표현법

(x, y) -> x < y ? x : y;
(int x) -> x+1 
(x) -> x+1
x -> x+1
(int x) -> { return x+1; }
x -> { return x+1; }

(int x, int y) -> x+y
(x, y) -> x+y
(x, y) -> { return x+y; }

(String lam) -> lam.length()
lam -> lam.length()
(Thread lamT) -> { lamT.start(); }
lamT -> { lamT.start(); }


//잘못된 유형 선언된 type과 선언되지 않은 type을 같이 사용 할 수 없다.
(x, int y) -> x+y
(x, final y) -> x+y

출처 : https://khj93.tistory.com/entry/JAVA-%EB%9E%8C%EB%8B%A4%EC%8B%9DRambda%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%82%AC%EC%9A%A9%EB%B2%95

함수 몸체가 단일 실행문일시 {}는 생략가능하다.

함수 몸체가 return문으로만 이루어졌을시 {}는 생략 불가능하다.

 

'자바' 카테고리의 다른 글

[자바] Comparable, Comparator  (0) 2023.01.13
[자바] CompareTo  (0) 2023.01.13
HashSet기초 (자바)  (0) 2023.01.07
Vector 기초 (자바)  (0) 2023.01.07
Stack 기초 (자바)  (0) 2023.01.06