I'm trying to make it so that no more than 5 units can be stacked on a tile. I have a Tile class that creates each tile's preferences. Should I store the units in an array or arraylist in this class?
Choosing a data structure will depend on what other features you want to support. In this case, you may as well use the ArrayList since it's easier to work with and more flexible.
It would be best to just store a reference to the unit in the tile, and have the unit objects stored elsewhere.
Based on the nature of your question a Stack http://docs.oracle.com/javase/6/docs/api/java/util/Stack.html be optimal, however it is last in first out so I don't know if that would fit your requirements, otherwise you could also use a queue. If order doesn't matter to you then use ArrayList, it is generally the most efficient (good comparison to linkedlist here http://www.java-gaming.org/topics/arraylist-vs-linkedlist/27017/view.html)