Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

개발합니다

[Java] 람다식 (Lambda Expression) 사용법 본문

Web/Java

[Java] 람다식 (Lambda Expression) 사용법

돈기법 2022. 3. 30. 15:00

람다식이란?

식별자 없이 실행 가능한 함수.
함수를 따로 만들지 않고 코드 한 줄에 함수를 써서 그것을 호출하는 방식이다.

 

사용법

(매개변수, ...) -> { 실행문 ... }
매개변수는 오른쪽 실행문을 실행하기 위해 필요한 값을 제공하는 역할이다.
매개변수 이름은 자유롭게 지정 가능하며, 인자 타입도 명시하지 않아도 된다.

 

매개변수가 하나이면 괄호를 생략해도 된다.

a -> a * a


람다식의 바디부분 표현식이 하나일 경우에도 중괄호를 생략할 수 있다.
중괄호가 생략된 람다식에서는 세미콜론을 붙이지 않는다.

한가지 예외로 람다식 바디에 return문이 있는 경우엔 중괄호를 생략할 수 없다.

 (a, b) -> { return a > b ? a : b }

 

예제

@FunctionalInterface
interface Say{
    int someting(int a,int b);
}
class Person{
    public void hi(Say line) {
	int number = line.someting(3,4);
	System.out.println("Number is "+number);
    }
}

@FunctionalInterface란 함수가 하나만 존재하는 인터페이스이다.

 

람다식 사용 X

Person rin = new Person();
rin.hi(new Say() {
    public int someting(int a, int b) {
	System.out.println("My Name is Coding-Factory");
	System.out.println("Nice to meet you");
	System.out.println("parameter number is "+a+","+b);
	return 7;
    }
});

 

람다식 사용 O

Person rin = new Person();
rin.hi((a,b) ->{
	System.out.println("This is Coding-Factory!");
	System.out.println("Tank you Lamda");
	System.out.println("parameter number is "+a+","+b);
    return 7;
});

람다식으로 정의할 시 불필요한 클래스의 정의가 필요하지 않다.
메소드 리턴 타입, 메소드 이름을 명시하지 않아도 된다. 이 때문에 람다식을 익명 함수라고 부르기도 한다.

 

 

람다식을 사용하면 코드가 간결해지고 가독성이 향상되는 이점이 있지만,
그렇다고 너무 많이 사용할 경우 코드가 지저분해지고, 읽기 힘들어지기 때문에 주의해야한다.

 

 

 

-참고 글

https://coding-factory.tistory.com/265

 

[Java] 람다식(Lambda Expressions) -> 사용법 & 예제

 람다식이란? 람다식이란 "식별자없이 실행가능한 함수" 함수인데 함수를 따로 만들지 않고 코드한줄에 함수를 써서 그것을 호출하는 방식이라고 생각하시면 되겠습니다. 함수적 프로그래밍을

coding-factory.tistory.com

https://hbase.tistory.com/78

 

[Java] 람다식(Lambda Expressions) 사용법 및 예제

자바8에서 '람다식(Lambda Expression)'이 지원되면서 자바는 완전히 새로운 언어처럼 보이기 시작했다. 지네릭스(Generics)가 자바을 크게 변화시킨 것처럼 람다식 역시 자바를 어마어마하게 변화시켰

hbase.tistory.com

 

'Web > Java' 카테고리의 다른 글

[Java] private final, private static final 차이점  (0) 2022.03.30