16-1. 스트림 소개

<aside> 💡 스트림(Stream)은 자바 8부터 추가된 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다.

</aside>

반복자 스트림

자바 7 이전까지는 List<String> 컬렉션에서 요소를 순차적으로 처리하기 위해 Iterator 반복자를 다음과 같이 사용해왔다.

List<String> list = Arrays.asList("홍길동", "신용권", "감자바");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {
		String name = iterator.next();
		System.out.println(name);
}
List<String> list = Arrays.asList("홍길동", "신용권", "감자바");
Stream<String> stream = list.stream();
stream.forEach(name -> System.out.println(name));
void forEach(Consumer<T> action);

스트림의 특징

StreamIterator 와 비슷한 역할을 하는 반복자이지만 많은 차이점을 가지고 있다.