In this course, you'll focus on ArrayLists, which are a specific instantiation of the List interface. You'll learn about the List, Collection, and Iterable interfaces, and how the different list implementations such as ArrayList, Vector, and LinkedList, implement these interfaces. You'll then explore different iteration operations over lists and the ListIterator object. You'll see how to avoid ConcurrentModification exceptions, which can occur if code attempts to simultaneously iterate over a list and modify that list’s contents. Next, you'll learn how to perform range-view operations on lists. Finally, you'll examine the shallow-copy nature of range-views, and how, when you modify an element in a range-view, the elements in the underlying list are being modified as well.