Note: The actual details of the growth policy is JDK dependent and the specification doesn’t specify when to grow (e.g. Likewise, when elements are removed and extra space isn’t needed, it shrinks the internal array. Otherwise, it grows the capacity of the internal array by allocating a larger array and moving existing elements to it. If there is, the element is added to the array. When you add a new element, the ArrayList checks if there’s enough room in the internal array to store the new arrival. Internally, ArrayList class uses plain old arrays to store the elements, hence the name ArrayList. Under the hood, ArrayLists class uses plain old arrays to store elements!ĪrrayList implements the List interface. We just looked at the key difference between ArrayLists and Arrays but there is a twist. You must know in advance how many elements the array will hold and initialize accordingly. When standard arrays become full, they cannot be adjusted to make room for more elements. You must assign them a capacity during initialization. These are fixed size, always occupying a fixed amount of memory. As elements are added and removed, it grows or shrinks its size automatically.Ĭontrast this to standard arrays in Java e.g. But we’ll ignore these differences as they are not relevant.)ĪrrayLists are dynamically sized which means that developers don’t need to specify the capacity or the maximum size when declaring ArrayLists. (At high-level, otherwise you can argue that there are several such as one being a class, whereas the other has built-in language support. Any object stored in the ArrayList can be randomly access and retrieved in constant time. ArrayLists vs ArraysĪrrayLists are used for storing an ordered collection of objects.
The Java Collections Framework provides several classes that make it easy for developers to work with and use collections. The ArrayList is a class that is part of the Java Collections Framework.Ī collection represents a group of objects. In this article, we’ll explore ArrayList and look at several examples. The chance of you getting it wrong is small. If you’re not sure, start out with ArrayList. If there’s one data structure that I get excited about and use a lot, it’s the ArrayList in Java.ĪrrayLists are so very versatile and powerful and can be used in so many use cases.