List is an interface, while the ArrayList class is its most often used implementation. Both are residing in the java.util package. The ArrayList class has a few more methods - in addition to those declared in the List interface. The removeRange() method, for example, is not present in the List interface but available in the ArrayList API.
List - ArrayList preserves order
Prefer variable type List
It is a good practice, while creating an object of an ArrayList, to assign its reference to a variable of type List:
List listOfNames = new ArrayList();
More likely than not, using a variable of type ArrayList will not change anything in your program, not today, nor in the future:
ArrayList listOfNames = new ArrayList();
The preceding...