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 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.