Categories: Java 언어Korean

Java 총 정리[89. 람다식]

람다식

이전 걸음에서는 내부 class에 대해서 배웠습니다. 많이 사용이 되고 있기 때문에 꼭 이해를 하시기를 부탁 드립니다. 이번 걸음에서도 많이 사용되고 있고 Java 뿐만 아니라 다른 언어에서도 많이 사용되는 방법이기 때문에 이번 걸음을 끝까지 함께 해주세요.(람다식)

람다식에 대해서 이번 걸음에서 같이 보도록 하겠습니다. Java 뿐만 아니라 JavaScript라는 프로그래밍 언어에서 많이 사용이 되고 있기 때문에 일석이조라고 생각을 하시고 같이 공부를 하시면 좋을 것 같습니다.

람다식이란 무엇인지, 구조가 어떻게 되어 있고 어디에 사용을 하는지 그리고 마지막으로는 예제를 보고 활용하는 방법에 대해서 공부를 할 수 있도록 하겠습니다. 이번 걸음에서 확실히 람다식을 이해룰 한다면 JavaScript에서도 손쉽게 사용을 하실 수 있습니다.

람다식 이란?

람다식 익명 함수의 한 형태로 메서드를 하나의 식으로 표현을 하는 것입니다. 이게 왜중요한  음, 람다식 덕분에 코드를 좀 더 간단하고 간결하게 작성할 수 있고, 함수형 프로그래밍을 자바에서도 할 수 있습니다.

람다식 구조

(인자목록) -> { 바디 }

람다식은 인자 목록, 화살표(->), 그리고 바디로 이루어져 있습니다. 인자 목록은 메서드의 매개변수를 나열하는 부분이고, 화살표는 이 인자들과 바디를 구분해주는 역할을 합니다. 그리고 바디는 실제로 수행할 코드를 포함하고 있습니다.

람다식 사용

주로 함수형 인터페이스를 구현하는 데 사용됩니다. 함수형 인터페이스는 하나의 추상 메서드만을 가지고 있는 인터페이스를 말하는데 예를 들어서 자바에서는 java.util.function 패키지에 많은 함수형 인터페이스들이 있습니다. Consumer, Predicate, Function 등이 그런 인터페이스들입니다.

예제

    
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("김철수");
        names.add("홍길동");
        names.add("타이거");

        // 람다식을 사용한 간단한 예시
        names.forEach(name -> System.out.println("Hello, " + name));
    }
}
    

위 소스와 같이 forEach 메서드를 사용하여 리스트의 각 요소에 대해 람다식을 적용해서 동작을 하고 있습니다. 한 줄로 간단하게 사용을 할 수 있는 것을 볼 수 있습니다.

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

7개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

8개월 ago

This website uses cookies.