Simply you can say,
Array is data type oriented. It should be int or float or string or object, etc., but the arraylist is stores everything is type oriented.
The array size has to be defined and arraylist can grow dynamically. But it will take atleast 32 initially.
The Array is type safe and arraylist needs type conversion and leads runtime error.
The Arraylist belongs to system.collection and array belongs to system.Array namespace.
If this post is useful then mark it as "Accepted Answer"