When used with a linear collection, the traversal must start with the first element and visit the successors.
When used with an array, the traversal must visit every element, unless the programmer breaks or returns.
The collection itself cannot be modified during the traversal, although the state of individual elements may be modified.