Свойство iterator
_DoubleLinkedQueueIterator<E> iteratorВозвращает новый Iterator, который позволяет итерировать элементы этого Iterable.
Классы Iterable могут указывать порядок итерации своих элементов (например, List всегда итерируются в порядке индексов) или оставлять его неопределённым (например, хэш-таблица Set может итерироваться в любом порядке).
Каждый раз, когда iterator считывается, он возвращает новый итератор, который можно использовать для повторного перебора всех элементов. Итераторы одного и того же iterable могут выполняться независимо, но должны возвращать одни и те же элементы в том же порядке, пока основное множество не изменится.
Изменение коллекции может привести к тому, что новые итераторы будут генерировать разные элементы и изменять порядок существующих элементов. List точно определяет порядок итерации, поэтому изменение списка предсказуемо изменяет порядок итерации. В хэш-таблице Set порядок итерации может полностью измениться при добавлении нового элемента в множество.
Изменение базовой коллекции после создания нового итератора может вызвать ошибку при следующем вызове Iterator.moveNext на этом итераторе. Любой изменяемый класс iterable должен указывать, какие операции нарушат итерацию.
Исходный код
_DoubleLinkedQueueIterator<E> get iterator {
return new _DoubleLinkedQueueIterator<E>(_sentinel);
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-collection/DoubleLinkedQueue/iterator.html