2 / 2
자바 스트림 API 기초 — 파이프라인 조립하기
대상 자바 8 람다 표현식과 함수형 인터페이스(
Predicate,Function,Comparator)를 익힌 자바 개발자목표 숫자와 문자열에서 시작해 실제 도메인 객체까지, 스트림 파이프라인을 단계별로 쌓아올리고 최종적으로 메뉴 목록에 부가 정보를 조립한다
완성물
StreamPractice.java단일 파일.main메서드에서 메뉴 리스트를 출력하며, 각 항목에 카테고리 이름과 이미지 개수가 채워진 상태
Java 17 이상 환경이 필요합니다. Spring Boot나 데이터베이스는 필요 없으며, 순수 자바 파일 하나로 실행합니다.
STEP 1 / 8숫자 리스트로 첫 파이프라인 만들기
0개 완료 · 8개 남음
스트림의 기본 골격인
stream()→filter→map→collect를 숫자 리스트로 직접 만들어 봅니다.1-1. 프로젝트 폴더와 파일 만들기
빈 폴더를 만들고
StreamPractice.java를 생성합니다.mkdir stream-prj cd stream-prj파일:
StreamPractice.javaimport java.util.List; import java.util.stream.Collectors; public class StreamPractice { public static void main(String[] args) { // 1단계: 숫자 리스트 파이프라인 List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); List<Integer> result1 = numbers.stream() .filter(n -> n % 2 == 0) .map(n -> n * 10) .collect(Collectors.toList()); System.out.println("1단계 결과: " + result1); } }1-2. 컴파일 및 실행
javac StreamPractice.java java StreamPractice✅ 확인
- 터미널에
1단계 결과: [20, 40, 60, 80, 100]가 출력됩니다.
🎓 newlec 쌤의 코멘트
스트림은 원본 컬렉션(
numbers)을 변경하지 않고, 중간 연산(filter,map)을 체이닝하여 마지막에 종단 연산(collect)으로 결과를 받아오는 방식입니다.n % 2 == 0은 짝수만 남기고,n * 10은 남은 숫자를 10배로 변환합니다. 이 4단계 구조가 이후 모든 스트림 코드의 뼈대입니다.❌ 자주 하는 실수
증상 원인 해결 cannot find symbol: class Collectorsjava.util.stream.Collectors임포트 누락파일 상단에 import java.util.stream.Collectors;추가List.of에러Java 9 미만 사용 중 Java 17 이상으로 JDK 버전을 확인하거나 Arrays.asList로 변경📝 이 단계의 핵심
- 스트림 파이프라인은
stream()으로 시작하고collect()로 끝난다. filter는 조건에 맞는 요소만 남기고,map은 요소를 변환한다.
- 터미널에