한 줄 요약
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())를 사용하는 것이 좋습니다.