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