Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa Iterator và Spilled Iterator trong Java.

Trình lặp lại và trình lặp phân tách cả hai giao diện đều được sử dụng để lặp qua bộ sưu tập.

Trình lặp phân tách được giới thiệu trong Java 8 để đạt được tính song song. Nó có thể phân chia tập hợp phần tử đã cho và có thể thực hiện song song hoạt động bằng cách sử dụng các luồng độc lập khác nhau. Nó có thể duyệt các phần tử một cách song song cũng như theo cách tuần tự. Có các phương thức quan trọng sau trong giao diện splitIterator -

  • trySplit - Nó được sử dụng để chia tập hợp các phần tử đã cho thành nhiều phần.
  • tryAdvance - Nó tương đương với các phương thức hasNext / next có sẵn trong giao diện Iterator
  • getExactSizeIfKnown <> -Nó được sử dụng để lấy kích thước của tập hợp các phần tử đã cho.
Sr. Không. Phím Trình lặp lại Trình lặp phân tách
1
Cơ bản
Nó có thể được sử dụng để duyệt qua phần tử của bộ sưu tập
Nó cũng có thể được sử dụng với Stream.
2
Hoạt động hàng loạt
Nó chỉ có thể được sử dụng để duyệt từng phần tử một
Nó có thể được sử dụng để duyệt các phần tử hàng loạt.
3
Tuần tự / Song song
Nó chỉ có thể duyệt qua phần tử theo cách tuần tự
Nó có thể duyệt phần tử theo cách tuần tự cũng như song song.
4.
Trình lặp bên ngoài / bên trong
Iterator sử dụng Lặp lại bên ngoài để lặp lại các Bộ sưu tập
Spliterator sử dụng Lặp lại nội bộ

Ví dụ về Spliterator

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