// education

람다식(Lambda Expression)과 스트림 API 데이터 가공

자바 8부터 도입된 **람다식(Lambda Expression)**과 컬렉션 데이터를 선언형으로 가공하는 **스트림 API(Stream API)**를 학습합니다.


1. 람다 & 스트림 용어 사전 (Glossary)


2. 스트림 API 파이프라인 가공 예제

import java.util.*;
import java.util.stream.Collectors;

public class StreamApiExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Kim", "Park", "Lee", "Choi", "Kang");

        // [요구사항] 이름이 'K'로 시작하는 사람들만 골라 대문자로 바꾸고 정렬하여 리스트로 수집
        List<String> result = names.stream()
            .filter(name -> name.startsWith("K")) // 중간 연산: 'K'로 시작 필터링
            .map(String::toUpperCase)              // 중간 연산: 대문자 매핑
            .sorted()                              // 중간 연산: 정렬
            .collect(Collectors.toList());         // 최종 연산: 결과 수집

        System.out.println("가공 결과: " + result);
    }
}

3. 자주 묻는 질문 (Q&A)

Q. 스트림에서 map()flatMap()의 차이는? A. map()은 요소 1개를 다른 형태 1개로 변환하지만, flatMap()은 요소 1개가 여러 개로 분할되는 구조(예: 리스트의 리스트)를 하나의 단일 평탄화 스트림으로 쫙 펼쳐서 변환합니다.

← 이전자바 소켓(Socket) 네트워크 프로그래밍 다음 →자바 디자인 패턴(Singleton, Factory, DAO)과 실전 종합 프로젝트