Sequence/Collection hierarchies
Understand Sequence vs Collection (and Bidirectional/RandomAccess): traversal guarantees, indices, and when algorithms require stronger protocols.
Hierarchy map
The iterable stack:
- Sequence: iteration via iterator (may be single-pass).
- Collection: multi-pass, indexable (startIndex/endIndex).
- BidirectionalCollection: can move indices backward.
- RandomAccessCollection: constant-time index steps.
Sequence iteration
Sequence guarantees you can iterate elements in order; nothing about indices or multi-pass is required.
let seq = [1, 2, 3] as AnySequence<Int> // wrap as AnySequence for demo
for x in seq { print(x, terminator: " ") }
print("")All lessons in this course
- Sequence/Collection hierarchies
- Map/Filter/Reduce, lazy sequences
- Custom iterators & performance tips