자바

자바 스트림 Java Stream - 스트림이란?, 반복자 스트림

알통몬_ 2017. 3. 27. 10:09
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

이번 포스팅부터는 자바 스트림에 대해 공부하겠습니다.


스트림 =>

컬렉션(배열)의 저장 요소를 하나씩 참조하여 람다식으로 처리할 수 있도록 해주는 반복자입니다.

람다식이 궁금하시다면?

2017/03/19 - [자바] - 자바 람다식 java 기본 문법과 함수적 인터페이스


반복자 스트림 =>

자바 7 버전 이전까지는 List<E> 컬렉션의 요소를 순차적으로 처리하려면

Iterator 반복자를 사용하였습니다.

ex)

List<Integer> list = new ArrayList<>();

list.add(1);

list.add(20);

list.add(10);

Iterator<Integer> iter = list.iterator();

while(iter.hasNext)) {

   int value = iter.next();

   System.out.println(value);

}

위 예제 코드를 스트림을 사용하게 되면

아래처럼 사용할 수 있습니다.

ex)

List<Integer> list = new ArrayList<>();

list.add(1);

list.add(20);

list.add(10);

Stream<Integer> stream = list.stream();

stream.forEach( value -> System.out.println(value) );


컬렉션의 stream()으로 스트림 객체를 얻은 후 

stream.forEach( value -> System.out.println(value) );를 통하여
요소를 하나씩 콘솔에 출력합니다.

forEach()는 Consumer 함수적 인터페이스 타입의 매개값을 가지므로

컬렉션의 요소를 소비할 코드를 람다식을 기술할 수 있게됩니다.

void forEach(Consumer<T> action)


예제를 보겠씁니다.


이상입니다.

다음 포스팅에서는 스트림의 특징에 대해 공부하겠습니다~~



반응형