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
JavaArrayList 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
| Method | Purpose |
|---|---|
| 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
| Feature | Array | ArrayList |
|---|---|---|
| Size | Fixed | Resizable |
| Primitive types | Supported | Uses wrapper types |
| Add/remove methods | No | Yes |
| Index access | Yes | Yes |
| Built-in collection methods | Limited | Many |
| Part of Collections Framework | No | Yes |
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....🙂