Java 中 Iterator 和 Spilt Iterator 之间的区别。

javaserver side programmingprogramming

Iterator 和 split iterator 接口均用于对集合进行迭代。

Java 8 中引入了 Split iterator 以实现并行性。它可以拆分给定的元素集,并使用不同的独立线程并行执行操作。它可以并行遍历元素,也可以按顺序遍历元素。 splitIterator 接口中有以下重要方法 −

  • trySplit - 用于将给定的元素集拆分为多个部分。
  • tryAdvance - 相当于 Iterator 接口中的 hasNext/next 方法
  • getExactSizeIfKnown <> - 用于获取给定元素集的大小。
Sr.不。Key迭代器分割迭代器
1
基本
可用于遍历集合中的元素
也可与Stream一起使用。
2
批量操作
可用于逐个遍历元素仅
可用于批量遍历元素。
3
顺序/并行
仅能以顺序方式遍历元素
既能以顺序方式遍历元素,也能以并行方式遍历元素。
4.
外部/内部迭代器
迭代器使用外部迭代来迭代集合
拆分器使用内部迭代

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

相关文章