ArrayList:-
1. "System.Collections" is the Namespace for Arraylist.
2. We create a ArrayList like:-
System.Collections.ArrayList list1 = new System.Collections.ArrayList();
list1.Add(3);
It means do not need to specify which datatype is going to be stored.
3. It is not type-safe at compile-time. Its shows errors at runtime.
4. Any reference or value type that is added to an ArrayList is implicitly upcast to Object. If the items are value types, they must be boxed when added to the list, and unboxed when they are retrieved. Both the casting and the boxing and unboxing operations degrade performance
GenericList:-
1. "System.Collections.Generic" is the Namespace for generic List.
2. We can initialize GenericList:
List list1 = new List();
list1.Add(3);
3. It is a collection that is type-safe at compile-time.
4. There is no boxing and unboxing. It is faster