[BE] .toList() vs collect(Collectors.toList())

Tags
Back
Person
Status
Done
문제가 발생한 기능
toList를 사용하자!
생성 일시
2024/12/02 04:29
한 줄 요약
Java 버전이 17 이상이라면 toList 사용 17 이하라면 collect(Collectors.toList()) 사용
Java 16부터toList() 메서드를 바로 사용할 수 있게 되어 collect(Collectors.toList())와 거의 동일한 결과를 얻을 수 있습니다.

두 가지 방법의 차이

1.
collect(Collectors.toList())
Java 8부터 지원되며, Collector를 사용하여 요소를 모읍니다.
반환되는 List는 ArrayList로 구현된 리스트입니다.
null 요소를 포함할 수 있습니다.
2.
toList()
Java 16부터 도입된 간소화된 메서드로 collect(Collectors.toList())를 대체할 수 있습니다.
반환되는 List는 불변 리스트입니다. 즉, 생성된 리스트에 변경 작업(추가, 삭제 등)을 시도하면 UnsupportedOperationException 예외가 발생합니다.
null 요소가 포함될 수 없으며, 만약 null 요소가 있으면 NullPointerException이 발생합니다.
따라서, 리스트가 불변이어도 괜찮고 Java 16 이상을 사용 중이라면 toList()를 사용하여 코드를 간결하게 작성할 수 있습니다. 반면 가변 리스트가 필요하거나 Java 8~15를 사용 중이라면 collect(Collectors.toList())를 사용하는 것이 좋습니다.