Iterator Design Pattern

  • Describe the iterator design pattern.

The Iterator design pattern states the elements of a collection (an aggregate object) should be accessed and traversed without exposing its representation (underlying implementation).

This goal is achieved by defining an Iterator object to traverse a data structure and access its elements.

Iterator pattern is widely used in Java Collection Framework (the data structures built into Java). To implement the Iterator pattern, Java API provides two interfaces: Iterable and Iterator.

The built-in array is special!

The built-in array is an exception because it is an iterable (thus can be used with the enhanced for loop) but does not implement the Iterable interface. The built-in array is a unique construct, a cross between primitive and objects!

Iterator pattern hides the actual implementation of a data structure from the clients of it. We will apply this pattern to the design of our data structures in this course, starting with the IndexedList ADT.

Resources

Refactoring Guru has a great article on the Iterator pattern.