Stream.toList()
터미널 toList()가 장황한 collect(Collectors.toList())를 대체합니다.
코드 비교
✕ Java 8
List<String> result = stream
.filter(s -> s.length() > 3)
.collect(Collectors.toList());
✓ Java 16+
List<String> result = stream
.filter(s -> s.length() > 3)
.toList();
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
7자 대 24자
.toList()가 .collect(Collectors.toList())를 대체합니다.
불변
결과 리스트를 수정할 수 없습니다.
유창함
파이프라인 끝에서 자연스럽게 읽힙니다.
이전 방식
Collectors.toList()
모던 방식
.toList()
JDK 버전
16
난이도
초급
JDK 지원
Stream.toList()
사용 가능
JDK 16 (2021년 3월) 이후 널리 사용 가능
동작 원리
Stream.toList()는 수정 불가능한 리스트를 반환합니다. .collect(Collectors.toUnmodifiableList())와 동일하지만 훨씬 짧습니다.
관련 문서