Developers and programmers are choosing ArrayList over traditional Java arrays. And, do you know why? The most obvious reason is that an ArrayList in Java is resizable. Unlike standard arrays, an ArrayList grows upon the addition of new elements. An array is fixed in size, and once it is full, you cannot add more items to it.
On the contrary, an ArrayList in Java dynamically grows and shrinks, allowing more flexibility and functionality as compared to the standard arrays. Let us learn more about ArrayList and why they are preferred to regular Java arrays.
What is ArrayList in Java?
An ArrayList is a class in Java that extends AbstractList and executes the List interface of Java. A collection of dynamic elements in size and behavior requires a data structure that can handle its growth and shrinkage to add and remove elements, respectively.
An ArrayList in Java provides support for such a resizable list of elements with the freedom of addition, removal, finding, sorting, and replacement of objects in the list. As mentioned previously, an ArrayList will automatically stretch on the addition of new elements and reduce in size when elements are removed.
Hierarchical order of ArrayList Class
An ArrayList extends Java’s AbstractList and implements the List interface. The List interface, on the other hand, extends the Iterable and Collection interfaces in a hierarchical order.
Features of ArrayList
An ArrayList in Java has the following features:
- Dynamic and resizable: An ArrayList can grow in size on adding more elements and likewise, shrink on the removal of elements.
- Index-based: Index begins with 0, and random accession of elements is allowed using their index positions.
- Ordered: By default, the elements in an ArrayList preserve the ordering in which they were initially added to the list.
- Non-synchronized: By default, an ArrayList is non-synchronized. Thus, programmers must use vector class or synchronized keyword as needed.
- Duplicates and Nulls: Unlike in sets, duplicate elements can be added to an ArrayList. It also permits null values.
- Boxed type: An ArrayList with primitive types like int and char cannot be created. It only allows boxed types, such as Integer, Character, and Boolean.
How does ArrayList work?
The implementation of the ArrayList class is done around a backing array. Modifications like addition or removal of elements in an ArrayList are reflected in the backing array. All methods in ArrayList access the backing array to get or set elements in the array. So basically, ArrayList is a resizable array implementation in Java.
Constructors in ArrayList
Here, we will briefly describe the constructors of ArrayList in Java:
- ArrayList( ): For building an empty ArrayList.
- ArrayList(Collection c): For building an ArrayList that is initialized with collection ‘c’ elements.
- ArrayList(int capacity): For building an ArrayList that has a specified initial capacity. Capacity is the term employed for the size of the underlying array used for storing the elements. When elements are added to the ArrayList, the capacity will grow automatically.
Methods in ArrayList
In this section, we will give a brief description of some methods in ArrayList:
- ArrayList add( ): It is used for adding elements to the ArrayList. If the index is not specified, new elements are added after the last element is already present in the ArrayList.
Syntax: add(Object o)
- ArrayList remove( ): It is used for removing a specified element. The size of the ArrayList is reduced after the removal of the element.
Syntax: remove(Object o)
- Java array size: This method gives the number of elements present in the ArrayList. The first element has index 0.
Syntax: int size( )
- ArrayList contains: If the ArrayList contains a specified element, then this method will return true.
Syntax: Boolean contains(Object o)
- ArrayList clear( ): It is used for removing all the elements in the ArrayList.
- ArrayList clone( ): It is used for creating a shallow copy of the ArrayList, which copies only the object references.
- ArrayList sort( ): It is used for sorting the ArrayList as per the order of the Comparator instance.
- ArrayList replaceAll( ): It is used for removing all the elements from the list other than those present in the specified method argument collection.
ArrayList in Java has the edge over the regular Java arrays. ArrayList can dynamically grow and shrink to accommodate a resizable collection of elements. And, this demonstrates the greater functionality and flexibility of ArrayList as compared to a standard array. All in all, Java’s ArrayList addresses the drawbacks that are usually encountered with the use of arrays and makes programming in Java a lot easier.
If you’re interested to learn more about full-stack software development, check out upGrad & IIIT-B’s PG Diploma in Full-stack Software Development which is designed for working professionals and offers 500+ hours of rigorous training, 9+ projects, and assignments, IIIT-B Alumni status, practical hands-on capstone projects & job assistance with top firms.