collect(Collectors.toList())와 toList()
자바 Stream API를 사용하면서 알게 된 내용을 정리
.collect(Collectors.toList()) -> Java 8부터 사용가능, 수정 가능한 리스트에 사용
.toList() -> Java16부터 사용가능, 수정 불가능한 리스트에 사용
사용 예제 코드
List<Integer> list1 = stream.collect(Collectors.toList());
List<Integer> list2 = stream.toList();
두가지의 차이점은 수정 가능 여부가 크다
List<String> list = stream.collect(Collectors.toList());
list.add("new"); // ✅ 가능
List<String> list = stream.toList();
list.add("new"); // ❌ UnsupportedOperationException
그렇다면 언제 무엇을 선택해서 사용해야하는가?
toList()를 사용하는경우
- 조회 결과를 반환
- DTO리스트를 반환
- Kafka/API/Service결과
- 결과로 사용하고 수정하지 않을 리스트
collect(Collectors.toList())를 사용하는경우
- 사용 이후 add, remove를 할 예정일 때
- 반환되는 리스트를 조작해야하는 경우
- 자바 버전이 8~15환경일 때
결론
리스트를 수정할 일이 없고 자바 버전이 16이상일 경우 .toList()를 사용하자
'회고 > TIL' 카테고리의 다른 글
| [TIL] 2025.12.25 TDD에 대한 학습 (0) | 2025.12.26 |
|---|---|
| [TIL] 2025.12.18 (0) | 2025.12.18 |
| [TIL] 2025.12.10 (0) | 2025.12.10 |
| [TIL] 2025.09.30 화요일 (0) | 2025.10.01 |