An array is a fixed-size collection of elements of the same data type, while a list is a collection of elements of any data type that can be dynamically resized. Arrays offer constant-time access to elements and are typically used for numerical calculations, whereas lists are more flexible and can be used for a wide range of applications.