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()를 사용하는 것이 좋을것 같다!

0개의 댓글