Java 中迭代器 (Iterator) 和分割迭代器 (Spliterator) 的區別。
迭代器和分割迭代器都是用於遍歷集合的介面。
分割迭代器是在 Java 8 中引入的,用於實現並行處理。它可以將給定的元素集分割成多個部分,並使用不同的獨立執行緒並行執行操作。它可以並行或順序遍歷元素。分割迭代器介面中有一些重要的方法:
- trySplit - 用於將給定的元素集拆分為多個部分。
- tryAdvance - 等價於迭代器介面中可用的 hasNext/next 方法。
- getExactSizeIfKnown <> - 用於獲取給定元素集的大小。
序號 | 關鍵 | 迭代器 | 分割迭代器 |
---|---|---|---|
1 | 基礎 | 可用於遍歷集合中的元素 | 也可用於 Stream。 |
2 | 批次操作 | 只能用於逐個遍歷元素 | 可用於批次遍歷元素。 |
3 | 順序/並行 | 只能以順序方式遍歷元素 | 可以順序和並行方式遍歷元素。 |
4. | 外部/內部迭代器 | 迭代器使用外部迭代來遍歷集合 | Spliterator 使用內部迭代 |
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); } }
廣告