minstudio

모던 자바: 람다식과 스트림 API (Lambda & Stream)

Java 8 버전에 도입된 람다(Lambda)와 스트림(Stream) API는 자바의 패러다임을 바꾼 혁명적인 기능입니다. 기존에는 컬렉션의 데이터를 거를 때 지저분한 for문과 if문을 남발해야 했습니다.

스트림 API를 사용하면, 원본 데이터를 물줄기(Stream)에 올린 뒤, 조건에 맞게 거르고(filter), 형태를 변환하고(map), 최종적으로 묶는(collect) 과정을 컨베이어 벨트처럼 선언적(Declarative)으로 매우 우아하게 작성할 수 있습니다.

🌊 Stream 파이프라인 컨베이어 벨트 List 데이터 filter() 조건: 원형만 통과 map() 조건: 별 모양으로 변환 collect() 최종 결과 수집
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Apple", "Banana", "Cherry", "Avocado", "Blueberry");

        // [과거 방식] 'A'로 시작하는 과일만 대문자로 바꿔서 새 리스트에 담기
        // 코드가 길어지고 가독성이 떨어집니다.

        // [모던 자바 스트림 방식]
        List<String> result = names.stream()               // 1. 물줄기(스트림) 생성
                .filter(name -> name.startsWith("A"))      // 2. 중간 연산: 'A'로 시작하는 데이터만 통과 (람다식)
                .map(String::toUpperCase)                  // 3. 중간 연산: 모두 대문자로 변환 (메서드 참조)
                .collect(Collectors.toList());             // 4. 최종 연산: 결과를 모아서 List로 반환

        System.out.println("결과: " + result); 
        // 출력: 결과: [APPLE, AVOCADO]
    }
}
모던 자바: 람다식과 스트림 API (Lambda & Stream) | Minstudio