Enumeration is good for things that don't change much, like Months, States, Countries, etc. etc. Also, enums are used in AJAX. When you use a masked edit, and you want to display a dollar sign, you use an enum to let it know if it should display the textbox on the left or right.
Thats my take on an enumeration. And about an ArrayList, when you create an array, you need to specify how big it will be. ArrayLists, you don't need to do that. Also, ArrayLists inherit IEnumerable, IList, and a few others, so you can use LINQ to query them.
