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

更新於: 2020年9月9日

856 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告