Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 Iterator와 Spilled Iterator의 차이점.

<시간/>

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);
   }
}