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