Here are some of the things to do with the boxes in the container.
Unfortunately, primitive variables can't be put into an ArrayList. (There is hope. Each primitive type has an object type associated with it. For example, there is an Integer, Double, Character and Boolean class. Like other classes, these classes have methods, including constructors. They don't behave exactly like their primitive type counterparts, but with a little work, you can switch between the two types).
For ArrayList, each box is given a number, called the index. If an ArrayList has 3 boxes, then the indexes are 0, 1, and 2. Indexing always starts at 0. The maximum index is size - 1. Thus, if an ArrayList has 100 boxes, the minimum index is 0, and the maximum index is 99.
You might wonder why indexing starts at 0, instead of 1? There is a technical reason for it. Let's just say that it's easier for the Java compiler (by just a little bit) to start indexing at 0. In any case, programmers get used to 0 as the smallest index very quickly. You'll get used to it too. Give yourself a few months, and it will be natural to you.
With an index, we can retrieve an object handle at a particular box, or put a different object handle at a particular box.