본문 바로가기

컴퓨터공학/여러가지 정보

람다식(Lambda)이란?

1. 람다식이란?

람다식은 익명 함수(Anonymous Function)의 한 형태로, 메서드를 하나의 식으로 간결하게 표현하는 방법이다.

2. 람다식의 장점과 단점

장점:

  • 코드의 간결성: 람다식을 이용하면 익명 함수를 간결하게 표현할 수 있어 코드의 가독성을 높일 수 있다.
  • 함수형 프로그래밍 지원: 람다식을 이용하여 함수를 값으로 다룰 수 있기 때문에 함수형 프로그래밍의 장점을 활용할 수 있다.

단점:

  • 복잡한 로직의 표현: 일부 복잡한 로직은 람다식으로 표현하기 어렵거나 가독성이 떨어질 수 있다.
  • 디버깅의 어려움 : 익명함수이기에 디버깅을 할 때 해석하기 어렵다.

3. 람다식, iterator, for 예시

람다식 예시

// 람다식 예시
import java.util.ArrayList;
import java.util.List;

public class LambdaExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("JDG");
        names.add("Java");
        names.add("Student");
        
        // 람다식을 이용하여 리스트의 각 요소를 출력
        names.forEach(name -> System.out.println(name));
    }
}

 

iterator 예시

// iterator 예시
import java.util.ArrayList;
import java.util.Iterator;

public class IteratorExample {
    List<String> names = new ArrayList<>();
    names.add("JDG");
    names.add("Java");
    names.add("Student");
    // Iterator를 이용하여 리스트의 각 요소를 출력
    Iterator<String> iterator = names.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }
}

 

for문 예시

// for문 예시
import java.util.ArrayList;
import java.util.List;

public class ForExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("JDG");
        names.add("Java");
        names.add("Student");
        
        // for문을 이용하여 리스트의 각 요소를 출력
        for (int i = 0; i < names.size(); i++) {
            System.out.println(names.get(i));
        }
    }
}

 

 

4. iterator와 for문과는 다른 람다식의 장단점

장점:

  • 간결한 코드: 반복문과 달리 람다식을 사용하면 반복 과정을 명시적으로 작성할 필요가 없어 코드가 간결해진다.
  • 병렬 처리 용이: 람다식을 사용하면 병렬 처리가 쉬워지므로 성능을 향상시킬 수 있다.

단점:

  • 복잡한 로직 표현 어려움: 일부 복잡한 로직은 람다식으로 표현하기 어려울 수 있다.
  • 가독성 저하: 일부 람다식은 가독성이 떨어질 수 있어 코드를 이해하기 어려울 수 있다.

즉, 람다식은 코드를 간결하게 작성할 수 있고, 함수형 프로그래밍의 장점을 활용할 수 있어서 많은 상황에서 유용하게 사용된다. 그러니 앞으로는 상황에 맞춰 사용할 수 있도록 노력해야 겠다.

 

'컴퓨터공학 > 여러가지 정보' 카테고리의 다른 글

싱글톤 패턴이란?  (0) 2024.03.25
프로토콜(Protocol)에 대해 알아보자  (0) 2024.03.15