자기개발/검색한 자료 정리

Java 8의 람다식과 스트림 API 기본 사용법

실버블렛 2023. 4. 19. 21:56
반응형


요약: 이 글에서는 Java 8에서 도입된 람다식과 스트림 API의 기본 사용법을 설명합니다. 개발자들이 일하다가 모르는 것이 있다면 이 글을 참고하여 더 효율적인 코드를 작성할 수 있습니다.

람다식(Lambda Expressions) 소개

Java 8에서 도입된 람다식은 익명 함수(Anonymous Function)를 표현하는 간결한 문법입니다. 람다식을 사용하면 코드가 간결해지고, 함수형 프로그래밍 패러다임을 적용할 수 있습니다.

람다식 기본 문법

람다식의 기본 문법은 다음과 같습니다.

(parameters) -> expression
또는
(parameters) -> { statements; }

  • parameters: 매개변수 목록
  • expression: 단일 표현식
  • statements: 문장 블록

람다식 예제

다음은 람다식을 사용한 간단한 예제입니다.

// 기존의 익명 클래스 사용 방법
Runnable runnable1 = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, Java!");
    }
};

// 람다식 사용 방법
Runnable runnable2 = () -> System.out.println("Hello, Lambda!");

스트림 API(Stream API) 소개

스트림 API는 Java 8에서 도입된 데이터 컬렉션을 처리하는 기능입니다. 스트림 API를 사용하면 복잡한 연산을 간결하게 표현할 수 있으며, 병렬 처리를 쉽게 구현할 수 있습니다.

스트림 생성

스트림을 생성하는 방법은 다음과 같습니다.

  • 컬렉션(Collection) 인스턴스의 stream() 메서드를 사용하여 스트림을 생성합니다.
  • 배열의 경우 Arrays.stream() 메서드를 사용하여 스트림을 생성합니다.
  • Stream.of() 메서드를 사용하여 스트림을 생성합니다.

스트림 연산

스트림에서 제공하는 주요 연산은 다음과 같습니다.

  1. 중간 연산(Intermediate Operations)
    • filter(): 조건에 맞는 요소만 걸러내는 연산
    • map(): 요소를 변환하는 연산
    • flatMap(): 여러 스트림을 하나의 스트림으로 연결하는 연산
  2. 최종 연산(Terminal Operations)
    • collect(): 스트림의 요소를 컬렉션으로 반환하는 연산
    • count(): 스트림의 요소 개수를 반환하는 연산
    • reduce(): 스트림의 요소를 하나

의 값으로 축약하는 연산

  • forEach(): 스트림의 요소에 대해 작업을 수행하는 연산

스트림 예제

다음은 스트림 API를 사용한 간단한 예제입니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        // 짝수만 필터링
        List<Integer> evenNumbers = numbers.stream()
                .filter(n -> n % 2 == 0)
                .collect(Collectors.toList());
        System.out.println("짝수: " + evenNumbers);

        // 각 요소에 2를 곱함
        List<Integer> multipliedNumbers = numbers.stream()
                .map(n -> n * 2)
                .collect(Collectors.toList());
        System.out.println("곱하기 2: " + multipliedNumbers);

        // 요소들의 합 계산
        int sum = numbers.stream()
                .reduce(0, (a, b) -> a + b);
        System.out.println("합계: " + sum);
    }
}


이 글에서는 Java 8의 람다식과 스트림 API 기본 사용법을 소개했습니다. 이러한 기능을 활용하면 코드가 간결해지고, 가독성이 향상되며, 함수형 프로그래밍 패러다임을 적용할 수 있습니다. 이 글을 참고하여 Java 8의 람다식과 스트림 API를 활용한 효율적인 코드를 작성해보세요.


#Java8 #람다식 #LambdaExpressions #스트림API #StreamAPI #함수형프로그래밍 #코드개선 #예제

반응형