Stream .toList() 와 .collect( Collectors.toList())

최준호·2023년 11월 3일
0

Appling

목록 보기
8/12
post-thumbnail

🔴 Stream에서 List를 반환 받는 방법

Stream에서 List를 반환 받는 방법으로 .toList().collect(Collectors.toList())가 있다.
두 방법은 별차이가 없이 결국엔 List를 반환 받는것 같지만 사실 가장 큰 차이점이 존재한다.

바로

.toList()는 불변객체이고 .collect(Collectors.toList())는 가변 객체이다. 이 점으로 인해 큰 에러가 발생할 수 있다.

.toList()로 반환받은 객체에 .add()를 했을 때 불변객체는 데이터가 변경될 수 없다. 그렇기 때문에 만약 불변객체로 반환 받은 List에 add()를 하느 코드를 작성했다면 에러가 발생한다.

그런 경우에는 가변 객체를 반환해주는 .collect(Collectors.toList())를 사용하여 리스트를 반환 받는것을 사용하고 불변 객체를 사용하는 경우에만 .toList()를 사용하는 것이 좋을것 같다!

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글