스트림 처리

のの·2021년 1월 5일

parallel: 순차 처리 스트림을 병렬 처리로 변경한다.
sequential: 병렬 처리 스트림을 순차 처리로 변경한다.

예를들어
list.stream().limit(100).parallel().reduce(Integer::sum);

limit 연산을 수행할 때 데이터의 처음부터 100번째까지를 정확히 자르고 싶다면 병렬 처리를 해서는 안되고 순차 처리를 해야한다. 또한 순서가 중요하지 않더라도 limit 연산은 특정 개수만큼 데이터를 제한하는 것이기 때문에 병렬처리가 오히려 비효율적이다. limit 연산 이후 reduce 연산은 순차 처리보다 병렬 처리가 훨씬 효율적이기 떄문에 parallel 메소드로 변경해서 처리한다.


분할 반복 Spliterator

import java.util.List;
import java.util.Spliterator;

public class SpliteratorExample {
    public static void main(String[] args) {
        List<HelloPerson> personList = HelloPerson.getSampleData();
        Spliterator<HelloPerson> spliterator = personList.spliterator();
        spliterator.forEachRemaining(
                person -> System.out.println(person)
        );


    }
}

profile
wannabe developer

0개의 댓글