Yes .. ArrayList uses an array by itself.
It contains an array of objects (in java. C # should also be the same) to give you uniformity. Although the arraylist seems to be very dynamic in allocating memory, its internal operations are full of arrays.
The time when you create an object by calling the constructor, internally it calls an array with a limited size, maybe 10 (actually exactly 10 in java). Then, when and when you add objects to the arraylist, it will also need to increase the internal array. Therefore, the size of the internal array must be increased. Thus, a new array is created with a double size, and the old values ββare copied to this new array. Please note that the capacity of the array is increasing, so you can add more objects.
source share