Of course, you can do the same thing with an array, but there's more. So you don't need to know how many objects you're going to hold in a collection. You just create a collection object and let it take care of the details. Fortunately, a good OOP language comes with a set of containers as part of the package. These may include sets, queues, hash tables, trees, stacks, etc.
All containers have some way to put things in and get things out.
The way that you place something into a container is fairly obvious. But in many situations this doesn't make sense. Also, a single-selection function is restrictive. The solution is an iterator , which is an object whose job is to select the elements within a container and present them to the user of the iterator. As a class, it also provides a level of abstraction.