iterator属性

Iterator<E> iterator
override

一个新创建的Iterator,允许迭代此Iterable中的元素。

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

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

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

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

实现

@pragma('vm:prefer-inline')
Iterator<E> get iterator => ListIterator<E>(this);