[Java] Stream 사용시 toList()와 collect(Collectors.toList())의 차이 점
Stream API를 이용한 개발 중 List에서 데이터를 필터링 후 toList()로 변환하여 새 객체를 생성한 경우가 있었다. 기존 List에서 필터링 후 새롭게 생성한 List를 이용해 데이터 조작을 하려던 중 원본 List에 값이 반영되지 않는 상황이 발생했다. 확인을 해보니, stream().toList()는 Java 16 버전 이후 추가된 메서드인데, 이 메서드는 불변 리스트를 반환한다. Java 8에서 추가된 Collectors.toList()는 가변 리스트(mutable List)를 반환하기 때문에 List를 새롭게 생성했어도 원본 객체에 반영되지만, toList()는 불변 리스트(Immutable List)이기 때문에 원본에 영향을 주지 않는다. 만약, List를 단순히 반환받고 Par..