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);
}
}
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP