stream api는 자바 8 se부터 추가된 것이며, 많은 양의 데이터에 접근할 때 기존의 반복분이나 반복자(iterator)를 사용했을 때의 가독성 떨어지는 코드나, 코드의 재사용성에 대해서 단점을 극복하기 위해 도입된 기능이다.
stream api는 데이터를 추상화해서 다루고 다양한 방식으로 저장된 데이터를 읽고 쓰기위한 공통된 방법을 제공하기에, 배열이나 컬렉션 뿐 아니라 파일에 저장된 데이터도 모두 같은 방법으로 다룰 수 있게 된다.
Stream api는 세 단계에 걸쳐서 동작한다. 실제로 코드를 짤때도 이 단계에 따라서 줄 바뀜을 넣어서 가독성 좋게 하기도 한다.