Stream을 List로 변환하는 방법들의 차이

• SonarLint는 프로젝트 리펙토링 시 Stream.collect(Collectors.toList()) 대신 Stream.toList()를 사용하라고 권장한다.
• 이는 Stream.toList()를 사용하면 불변 리스트를 생성하기 때문이다.
• 반면에, Collectors.toUnmodifiableList()는 리스트를 불변 뷰로 감싸 반환하지만, 원본 컬렉션의 불변성을 보장하지 않는다.
• 대부분의 API에서는 리스트 생성 후 수정할 일이 없으므로 불변성을 보장하는 방식으로 리스트를 만드는 것이 합리적이다. 하지만 리스트 생성 후 내용물을 수정해야 한다면 1번 방식을 사용해야 한다.

북마크
공유하기
신고하기