[Java] 스트림(Stream) toList()와 collect(Collectors.toList())의 차이점

서재·2023년 11월 16일

[Java] 스트림(Stream)

목록 보기
4/4

StreamList로 변환할 때, 2가지 방법이 있다.
바로 toList()collect(Collectors.toList())이다.

지금까지는 둘의 차이가 단지 Java의 버전 차이라고 알고 있었지만,
최근 Stream.toList()로 만들어낸 리스트를 수정하려 시도하다가 발견한 큰 차이가 있었다.

바로 불변 여부이다.

toList()는 불변 리스트를 반환한다.
반면, collect(Collectors.toList())는 변경 가능한 리스트를 반환한다.

toList()

Java 16부터 사용 가능
불변 리스트를 반환 내부적으로 Collectors.toUnmodifiableList() 사용

collect(Collectors.toList())

Java 8부터 사용 가능
변경 가능한 리스트를 반환

profile
입니다.

0개의 댓글