0Pricing
Swift Academy · Lesson

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

  1. Sequence/Collection hierarchies
  2. Map/Filter/Reduce, lazy sequences
  3. Custom iterators & performance tips
← Back to Swift Academy