Collections 중급

stream.toList()로 수정 불가능한 리스트에 직접 수집합니다.

✕ Java 8
List<String> list = stream.collect(
    Collectors.collectingAndThen(
        Collectors.toList(),
        Collections::unmodifiableList
    )
);
✓ Java 16+
List<String> list = stream.toList();
이 코드에 문제가 있나요? 알려주세요.
📏

가장 짧은 형태

stream.toList()는 collect()나 Collectors 임포트가 전혀 필요 없습니다.

🔒

불변

결과를 수정할 수 없어 우발적인 변경을 방지합니다.

📖

가독성

스트림 파이프라인의 터미널 단계로 자연스럽게 읽힙니다.

이전 방식
collectingAndThen
모던 방식
stream.toList()
JDK 버전
16
난이도
중급
수정 불가능한 컬렉터
사용 가능

JDK 16 (2021년 3월) 이후 널리 사용 가능

Java 10에서 toUnmodifiableList(), toUnmodifiableSet(), toUnmodifiableMap()이 추가되어 장황한 collectingAndThen 래퍼를 대체했습니다. 리스트의 경우 Java 16의 stream.toList()가 더 간단한 대안을 제공합니다 — collect() 호출 자체가 필요 없습니다. 다른 컬렉션 타입에는 toUnmodifiableSet()과 toUnmodifiableMap()을 사용하세요.

공유 𝕏 🦋 in