Iterator 및 split iterator 인터페이스는 컬렉션을 반복하는 데 사용됩니다.
병렬화를 달성하기 위해 분할 반복자가 Java 8에 도입되었습니다. 주어진 요소 집합을 분할할 수 있고 다른 독립 스레드를 사용하여 병렬로 작업을 수행할 수 있습니다. 요소를 순차적으로 뿐만 아니라 병렬로 탐색할 수 있습니다. splitIterator 인터페이스에는 다음과 같은 중요한 메소드가 있습니다 -
- trySplit - 주어진 요소 집합을 여러 조각으로 분할하는 데 사용됩니다.
- tryAdvance - Iterator 인터페이스에서 사용 가능한 hasNext/next 메소드와 동일합니다.
- getExactSizeIfKnown <> - 주어진 요소 집합의 크기를 가져오는 데 사용됩니다.
Sr. 아니요. | 키 | 반복자 | 분할 반복자 |
---|---|---|---|
1 | 기본 | 컬렉션의 요소를 탐색하는 데 사용할 수 있습니다. | Stream에서도 사용할 수 있습니다. |
2 | 대량 작업 | 요소를 하나씩만 순회하는 데 사용할 수 있습니다. | 요소를 대량으로 탐색하는 데 사용할 수 있습니다. |
3 | 순차/병렬 | 순차적 방식으로만 요소를 순회할 수 있습니다. | 순차 및 병렬 방식으로 요소를 순회할 수 있습니다. |
4. | 외부/내부 반복자 | Iterator는 외부 반복을 사용하여 컬렉션을 반복합니다. | Splitator는 내부 반복을 사용합니다. |
분할기의 예
public class Main { public static void main(String args[]) { List<Integer> listOfInteger = new ArrayList<>(); listOfInteger.add(78); listOfInteger.add(10); listOfInteger.add(20); listOfInteger.add(30); Spliterator<Integer> s = listOfInteger.spliterator(); Spliterator<Integer> s1 = s.trySplit(); s.forEachRemaining(System.out::println); System.out.println("Traverse Second Half "); s1.forEachRemaining(System.out::println); } }