A dynamic array is an array that can dynamically change its size - whether it has to shrink or expand. It is behind the scenes, most of the time implemented with a static array. In general, the implementation consists of several things: Creating an internal static array with some initial capacity, Keeping track of the elements count, Creating a new and bigger array, copying elements from the original one, and adding the new element when there is no more space and a new element has to be added.