The basic difference between an Array and ArrayList are:
  • Arrays are of fixed size, whereas ArrayList can grow dynamically in size.
  • Array occupies memory in Stack whereas ArrayList occupies Heap.
  • ArrayList are not type-safe, single ArrayList can contain different data types.
Let us go by a sample:

Step 1: Create a console application.

Step 2: Create an ArrList class as shown below.

public class ArrList
 
   {
 
   public string msg = "String of ArrList Class";
 
   string[] sl = new string[3];  // Array is of fixed size, Type Safe
 
   ArrayList al = new ArrayList();  // Array List size is dynamic , Not Type Safe
 
   public void AddItem()
 
   {
 
   //Permissible members are string only
 
   sl[0] = "Hi";
 
   sl[1] = "Hello";
 
   sl[2] = "Welcome";
 
   //Permissible members are of any data type
 
   al.Add("String Msg");  //Adding String
 
   al.Add(1);  //Adding Integer
 
   al.Add('c');  //Adding Char
 
   ArrList ob = new ArrList();
 
   al.Add(ob);  //Adding userdefined class instance
 
   }
 
   public void ReadItem()
 
   {
 
   int i;
 
   Console.WriteLine("Printing Array");
 
   for (i = 0; i < 3; i++)
 
   {
 
   Console.Write(sl[i]+"//");
 
   }
 
   i = 0;
 
   Console.WriteLine("\n"+"Printing ArrayList");
 
   foreach (var itm in al)
 
   {
 
   Console.Write(itm + "//");
 
   }
 
   }
 
   }

Step 3: In the Main method, use the below code:

Console.WriteLine("//**********Array and ArrayList******************");
 
   ArrList myAr = new ArrList();
 
   myAr.AddItem();
 
   myAr.ReadItem();