[java] 자바 스트림과 컬렉션의 차이점은 무엇인가?
  1. 데이터 처리 방식:
    • 컬렉션: 컬렉션은 데이터를 저장하고 관리하는 역할을 합니다. 데이터를 추가, 삭제, 수정하는 등의 작업을 수행할 수 있습니다.
    • 스트림: 스트림은 데이터를 처리하는 개념입니다. 스트림을 사용하면 데이터를 연속적으로 처리할 수 있으며, 중간 처리와 최종 처리를 적용하여 데이터를 변환하거나 필터링할 수 있습니다.
  2. 데이터 저장:
    • 컬렉션: 컬렉션은 데이터를 메모리에 저장합니다. 자바의 컬렉션 프레임워크에는 다양한 컬렉션 인터페이스와 구현체가 있으며, 각각의 특징과 용도에 맞게 선택하여 사용할 수 있습니다.
    • 스트림: 스트림은 데이터를 메모리에 저장하지 않고, 데이터 소스로부터 읽어들여 처리합니다. 따라서 많은 양의 데이터를 처리하는 경우에도 메모리 사용량을 절약할 수 있습니다.
  3. 지연 연산:
    • 컬렉션: 컬렉션은 즉시 모든 연산을 수행합니다. 예를 들어, 리스트에서 요소를 필터링하여 새로운 리스트를 만드는 경우, 모든 요소를 순회하고 조건을 만족하는 요소를 찾아내어 새로운 리스트를 생성합니다.
    • 스트림: 스트림은 지연 연산을 지원합니다. 예를 들어, 리스트에서 요소를 필터링하는 경우, 필요한 시점까지 실제로 요소를 처리하지 않습니다. 이러한 지연 연산은 성능 향상을 가져올 수 있습니다.

스트림과 컬렉션은 각각의 장점과 용도에 맞게 사용됩니다. 컬렉션은 데이터의 저장과 관리에 적합하며, 스트림은 데이터의 처리에 특화되어 있습니다. 프로젝트의 요구사항과 상황에 따라 적절한 개념을 선택하여 사용해야 합니다.

참고 자료: