iterator 属性

Iterator<E> iterator
override

返回一个新的 Iterator,可以用来遍历此 Iterable 的元素。

可迭代类可以指定其元素的迭代顺序(例如,List 总是按索引顺序迭代),或者它们可以不指定(例如,基于哈希的 Set 可以以任何顺序迭代)。

每次读取 iterator 时,它都会返回一个新的迭代器,可以用它再次遍历所有元素。同一个可迭代对象的迭代器可以独立地遍历,但只要底层集合没有改变,它们应返回相同顺序的元素。

修改集合可能会导致新的迭代器生成不同的元素,并可能会改变现有元素的顺序。例如,List 精确指定了它的迭代顺序,因此修改列表会使迭代顺序可预测。基于哈希的 Set 在向集合添加新元素时可能会完全改变其迭代顺序。

在创建新迭代器后修改底层集合可能会导致在下次调用该迭代器的 Iterator.moveNext 时出现错误。任何 可修改的 可迭代类应指定哪些操作会中断迭代。

实现

Iterator<E> get iterator =>
    _SplayTreeKeyIterator<E, _SplayTreeSetNode<E>>(this);