Im Unterschied zur Liste ist das Array keine dynamische Datenstruktur. Das Vergrößern eines Arrays ist nur durch Anlegen eines neuen Arrays und Kopieren des Inhalts des alten Arrays in das neue Array möglich.
Arbeitet man mit Daten fester Größe sind Arrays in der Regel performanter als Listen. Das gilt insbesondere beim Arbeiten mit primitiven Datentypen, da das Array im Unterschied zur Liste primitive Datentypen speichern kann. Will man in einer Liste mit primitiven Datentypen arbeiten, findet implizit immer eine aufwendige boxing oder unboxing Operation statt.
Listen sind vielseitig verwendbar, da oft benötigte Methoden wie contains(), addAll(), indexOf(), remove(), sort(), … bereits fertig implementiert und getestet sind.