Here is some additional reference material that you may refer to regarding what has been covered in this chapter: Design Patterns, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides Iterator pattern on Wikipedia (https://en.wikipedia.org/wiki/Iterator_pattern) OpenJDK's java.utils.Collection.sort() is broken: The good, the bad and the worst case, by de Gow et al. (http://envisage-project.eu/wp-content/uploads/2015/02/sorting.pdf) Pattern-defeating Quicksort (http://envisage-project.eu/wp-content/uploads/2015/02/sorting.pdf)