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.