Homebreadcumb forward arrow iconBlogbreadcumb forward arrow iconFull Stack Developmentbreadcumb forward arrow iconA Complete ArrayList in Java: What You Need to Know

A Complete ArrayList in Java: What You Need to Know

Last updated:
11th Jun, 2020
Read Time
6 Mins
share image icon
In this article
Chevron in toc
View All
A Complete ArrayList in Java: What You Need to Know

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.

Check out our free courses to get an edge over the competition. 

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.

Ads of upGrad blog

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.

Check out upGrad’s Advanced Certification in DevOps 

Read: Java Developer Salary in India

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.

Source: Callicoder 

Check out upGrad’s Full Stack Development Bootcamp (JS/MERN)

Explore our Popular Software Engineering Courses

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.

Read: Top 6 Reasons Why Java Is So Popular With Developers

Explore Our Software Development Free Courses

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.

Source: Howtodoinjava 

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.

In-Demand Software Development Skills

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.
Ads of upGrad blog

Also read: 17 Interesting Java Project Ideas & Topics For Beginners

Read our Popular Articles related to Software Development


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.


Rohan Vats

Blog Author
Software Engineering Manager @ upGrad. Passionate about building large scale web apps with delightful experiences. In pursuit of transforming engineers into leaders.

Frequently Asked Questions (FAQs)

1What is the difference between a List and an ArrayList?

The most significant distinction between a List and an ArrayList is that the former is an interface, while the latter is a class. The List interface is employed to construct a list of items with linked index numbers. The ArrayList class is intended to build a dynamic array of items. The list interface produces a succession of elements that are identified and retrieved using the index. ArrayList forms an array of items that can expand in size over time. Furthermore, the List interface extends the Collection framework, whereas the ArrayList class extends AbstractList and implements the List interface.

2What is the difference between an Array and an ArrayList?

The most significant distinction between an Array and an ArrayList is that an Array can be single or multidimensional, but an ArrayList can only be single-dimensional. The length of an Array is fixed and static, but the length of an ArrayList is dynamic and may be raised or lowered as needed. Primitive data types can be directly stored in Arrays, which are unusual objects. Primitive data types are not directly added to ArrayLists or unlikely arrays; instead, autoboxing and unboxing are used to add them indirectly. The assignment operator (+) can be used to add an item to an array. The function add() is used to add an item to an ArrayList using a specific manner.

3In Java, why is ArrayList referred to as a dynamically growing array?

ArrayList is a resizable array that can expand and contract in memory as needed. With an initial capacity, it is dynamically formed. Because ArrayList employs a dynamic array implicitly for storing a set of elements, it is referred to as a dynamically growing array in Java. Suppose that the original capacity of the array is surpassed. In that case, a new array with a bigger capacity is immediately generated, and all of the existing array's items are transferred to the new array. The size of the array list can be automatically decreased when elements are removed from it.

Explore Free Courses

Suggested Blogs

8 Exciting Full Stack Coding Project Ideas & Topics For Beginners
A Full stack developer is an engineer who can design and develop an end-to-end application independently by handling all the work of coding, databases
Read More

by upGrad

19 Feb 2024

17 Interesting HTML Project Ideas & Topics For Beginners [2024]
Summary In this article, you will learn 10 Interesting HTML Project Topics. Take a glimpse below. A tribute page A survey form Technical documentati
Read More

by Rohan Vats

19 Feb 2024

How to Open json File in Excel
What is JSON? JSON (JavaScript Object Notation) is a file format that is used for storing and exchanging data in the network. It is used to send data
Read More

by Rohan Vats

19 Feb 2024

JSP vs Servlet: Difference Between JSP & Servlet [2024]
Websites are collections of static files, for example, images, graphics, and HTML files. These websites are referred to as web applications if they pr
Read More

by Rohan Vats

19 Feb 2024

Java Developer Salary in India in 2024 [For Freshers & Experienced]
Wondering what is the range of Java developer salary in India? From choosing your first programming language to writing apps for Android and several
Read More

by Rohan Vats

19 Feb 2024

Polymorphism In OOPS: What is Polymorphism [Detailed Explanation]
Polymorphism in OOPs is inseparable and an essential concept of every object-oriented programming language. An object or reference basically can take
Read More

by Rohan Vats

19 Feb 2024

Literals In Java: Types of Literals in Java [With Examples]
Summary: In this article, you will learn about Literals in Java. Literals in Java Integral Literals Floating-Point Literals Char Literals String Lit
Read More

by Rohan Vats

19 Feb 2024

Top 30 Exception Handling Interview Questions and Answers [For Freshers & Experienced]
Exception handling is a concept that is implemented in algorithms to handle possible runtime errors, which may disrupt the normal flow of a program. S
Read More

by Rohan Vats

19 Feb 2024

Top 40 MySQL Interview Questions & Answers For Beginners & Experienced [2024]
Have a Data engineering or data science interview coming up? Need to practice some of the most asked MySQL interview questions? The article compiles t
Read More

by Rohan Vats

19 Feb 2024

Schedule 1:1 free counsellingTalk to Career Expert
footer sticky close icon