[Java] Iterable을 stream으로 처리하기

안녕하세요, 하마연구소 입니다.

자바에서 Iterable 인터페이스를 구현한 객체를 스트림으로 처리하는 간단한 방법이 있습니다.
StreamSupport 클래스를 사용하면 되며, 자바에 기본으로 포함되어 있습니다.
아래 소스와 같이 Iterable에서 Spliterator를 얻어서 stream 처리하면 됩니다.

Iterable<String> iterable = new LinkedList<>();

Spliterator<String> spliterator = iterable.spliterator();

StreamSupport.stream(spliterator, false)
        .forEach(data -> {
            // do something
        });

StreamSupport.stream()의 두번째 파라미터를 true로 주면 parallel(병렬) 스트림 처리도 가능합니다.

감사합니다.

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments