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)