자바
[JAVA] 스트림(Stream)
ChaeHing
2023. 3. 10. 02:27
스트림(Stream)
- 배열, 컬렉션의 요소를 하나씩 참조하여 람다식으로 처리 할 수 있도록 해주는 반복자
- 컬렉션, 배열등 다양한 데이터 소스들을 스트림으로 만들어 표준화된 방법으로 다룰수 있다.
- 이러한 데이터 소스를 다루기위한 풍부한 메서드들을 제공한다.
스트림의 도입 배경
- 자바 배열과 컬렉션등의 자료구조를 통해 데이터를 효과적으로 다루기 위하여 for문과 Iterator를 활용했었다.
- 이러한 기존 방식의 문제점이 있다.
- 코드가 길고 복잡해 질수 있다.
- 데이터 소스를 각기 다른 방식으로 다뤄야 했다.
- 이러한 문제점을 해결하기 위해 스트림은 이런 방식으로 다뤄진다.
- 선언형 프로그래밍 방식으로 데이터를 처리를 보다 인긴친화적이고 직관적인 코드 작성 가능
- 데이터 소스가 무엇이냐에 관계없이 같은 방식으로 데이터를 가공/처리 가능 - 하나의 통합된 방식(표준화)
스트림의 특징
- 처리 과정은 생성, 중간 연산, 최종 연산 세 단계의 파이프라인으로 구성될 수 있다.
- 원본 데이터 소스를 변경하지 않는다.(read-only)
- 일회용이다. (ontime-only)
- 내부 반복자이다.