CodeToConcept
About

java

java Tutorials

Introduction
Java Variables
Java Data Types
Java Type Casting
Java Operators
Java Input/Output
Java Class & Object
java Method
Java Constructor
Java this keyword
Java super keyword
Java Method Overloading and Overriding
Java Interface
Java Abstract Class
Java Memory Management
Design Patterns
JDBC (Database Connectivity)
Java IDEs

java Tutorials

Introduction
Java Variables
Java Data Types
Java Type Casting
Java Operators
Java Input/Output
Java Class & Object
java Method
Java Constructor
Java this keyword
Java super keyword
Java Method Overloading and Overriding
Java Interface
Java Abstract Class
Java Memory Management
Design Patterns
JDBC (Database Connectivity)
Java IDEs

Sample Question

Think it through, then check the tutorial.

CodeToConcept

Quickly learn through simple, structured, and practical coding tutorials. Build your confidence from step zero to real-world experience.

© 2026 CodeToConcept. All rights reserved.

Quick Links

AboutTutorials

Tutorials

JavaHTMLCSS

Support

Privacy PolicyTerms of ServiceContact
GitHubTwitterYouTube

Java ArrayList

ArrayList is a commonly used implementation of the List interface in Java.

It is a resizable array that allows us to store multiple objects and automatically grows its capacity when more space is needed. Removing elements reduces the size but does not automatically shrink the backing array.

ArrayList<String> names = new ArrayList<>();
 
names.add("Rahul");
names.add("Priya");
names.add("Amit");
 
System.out.println(names);

Output

[Rahul, Priya, Amit]

Why Use ArrayList?

A normal Java array has a fixed size.

String[] names = new String[3];

Once the array is created, its length cannot be changed.

An ArrayList provides a dynamic alternative.

ArrayList<String> names = new ArrayList<>();
 
names.add("Rahul");
names.add("Priya");
names.add("Amit");
names.add("Sneha");

We can continue adding elements without manually creating a larger array.

Creating an ArrayList

We need to import ArrayList.

import java.util.ArrayList;

Then create an object:

ArrayList<String> names = new ArrayList<>();

It is also common to program against the interface:

List<String> names = new ArrayList<>();

This approach gives us more flexibility to change the implementation later.

Adding Elements

Use the add() method.

ArrayList<String> languages = new ArrayList<>();
 
languages.add("Java");
languages.add("Python");
languages.add("JavaScript");

Adding at a Specific Position

We can insert an element at a particular index.

languages.add(1, "C++");

Example

ArrayList<String> languages = new ArrayList<>();
 
languages.add("Java");
languages.add("Python");
languages.add("JavaScript");
 
languages.add(1, "C++");
 
System.out.println(languages);

Output

[Java, C++, Python, JavaScript]

Accessing Elements

Use get().

String language = languages.get(0);
 
System.out.println(language);

Output

Java

ArrayList uses zero-based indexing.

Index:   0       1        2
         ↓       ↓        ↓
       Java    Python   C++

Updating an Element

Use set().

languages.set(1, "Go");

This replaces the element at index 1.

Removing Elements

Remove by object:

languages.remove("Java");

Remove by index:

languages.remove(0);

Be careful with remove() when using ArrayList<Integer> because remove(1) refers to an index, not necessarily the Integer value 1.

For example:

ArrayList<Integer> numbers = new ArrayList<>();
 
numbers.add(10);
numbers.add(20);
numbers.add(30);
 
numbers.remove(1);

This removes the element at index 1, which is 20.

To remove the value 20:

numbers.remove(Integer.valueOf(20));

Finding the Size

System.out.println(languages.size());

size() returns the number of elements currently stored.

Checking Whether an Element Exists

languages.contains("Java");

Example

if (languages.contains("Java")) {
    System.out.println("Java is available");
}

Checking Whether the List Is Empty

languages.isEmpty();

Iterating Through ArrayList

Enhanced for Loop

for (String language : languages) {
    System.out.println(language);
}

Using for Loop

for (int i = 0; i < languages.size(); i++) {
    System.out.println(languages.get(i));
}

Using forEach

languages.forEach(language -> System.out.println(language));

ArrayList Allows Duplicate Elements

ArrayList<String> names = new ArrayList<>();
 
names.add("Amit");
names.add("Rahul");
names.add("Amit");
 
System.out.println(names);

Output

[Amit, Rahul, Amit]

Duplicate values are allowed.

ArrayList Allows Null

An ArrayList can contain null.

ArrayList<String> names = new ArrayList<>();
 
names.add("Amit");
names.add(null);
names.add("Rahul");
 
System.out.println(names);

Sorting an ArrayList

We can use Collections.sort().

ArrayList<Integer> numbers = new ArrayList<>();
 
numbers.add(50);
numbers.add(10);
numbers.add(30);
numbers.add(20);
 
Collections.sort(numbers);
 
System.out.println(numbers);

Output

[10, 20, 30, 50]

Import:

import java.util.Collections;

Example: Student Names

import java.util.ArrayList;
 
public class HelloWorld {
    public static void main(String[] args) {
 
        ArrayList<String> students = new ArrayList<>();
 
        students.add("Rahul");
        students.add("Priya");
        students.add("Amit");
 
        System.out.println("Students:");
 
        for (String student : students) {
            System.out.println(student);
        }
    }
}

Important ArrayList Methods

MethodPurpose
add()Adds an element
add(index, element)Inserts at a specific index
get()Retrieves an element
set()Updates an element
remove()Removes an element
contains()Checks whether an element exists
size()Returns number of elements
isEmpty()Checks whether the list is empty
clear()Removes all elements
indexOf()Finds the first matching index
lastIndexOf()Finds the last matching index

ArrayList vs Array

FeatureArrayArrayList
SizeFixedResizable
Primitive typesSupportedUses wrapper types
Add/remove methodsNoYes
Index accessYesYes
Built-in collection methodsLimitedMany
Part of Collections FrameworkNoYes

When Should You Use ArrayList?

Use ArrayList when: You need a dynamic list. You frequently access elements by index. You generally add elements toward the end. Duplicate values are allowed. You need standard List operations.

Key Takeaway

ArrayList is a resizable array implementation of the List interface. It provides fast index-based access and convenient methods for adding, removing, searching, and updating elements. For many general-purpose list requirements, ArrayList is a natural starting point.

See you in next page....🙂

← OverviewLinkedList →
← OverviewLinkedList →