Stream을 List로 변환할 때, 2가지 방법이 있다.
바로 toList()와 collect(Collectors.toList())이다.
지금까지는 둘의 차이가 단지 Java의 버전 차이라고 알고 있었지만,
최근 Stream.toList()로 만들어낸 리스트를 수정하려 시도하다가 발견한 큰 차이가 있었다.
바로 불변 여부이다.
toList()는 불변 리스트를 반환한다.
반면, collect(Collectors.toList())는 변경 가능한 리스트를 반환한다.
Java 16부터 사용 가능
불변 리스트를 반환 내부적으로 Collectors.toUnmodifiableList() 사용
Java 8부터 사용 가능
변경 가능한 리스트를 반환