Java ArrayList
In this page:
Introduction to ArrayList
ArrayList is a resizable array implementation of the List interface — unlike a plain array, it automatically grows as you add elements, so you don't need to know the final size up front.
Example: Introduction to ArrayList
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>(); // grows automatically
list.add("a");
list.add("b");
System.out.println(list);
}
}
Login to try C/C++/Java/PHP code in the editor
ArrayList Operations
Adding to the end of an ArrayList is fast (amortized O(1)), but inserting or removing from the middle is slower (O(n)) since every following element has to shift over to keep the list contiguous.
Example: ArrayList Operations
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add(1, "inserted"); // slower: shifts elements after index 1
System.out.println(list);
}
}
Login to try C/C++/Java/PHP code in the editor
Iterating over an ArrayList
You can iterate an ArrayList with a standard for-each loop, an explicit Iterator, or an index-based for loop when you need the current position — each suits different situations depending on whether you need to modify the list mid-iteration.
Example: Iterating over an ArrayList
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
for (String item : list) { // for-each
System.out.println(item);
}
for (int i = 0; i < list.size(); i++) { // index-based
System.out.println(list.get(i));
}
}
}
Login to try C/C++/Java/PHP code in the editor
Common ArrayList Methods
Common ArrayList methods include add(), get(index), remove(), contains(), and size() — together they cover nearly everything you'll need for typical list manipulation without writing custom logic.
Example: Common ArrayList Methods
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
System.out.println(list.get(0));
System.out.println(list.contains("b"));
System.out.println(list.size());
list.remove("a");
System.out.println(list);
}
}
Login to try C/C++/Java/PHP code in the editor
ArrayList vs Standard Arrays
ArrayList trades the fixed size and slightly better raw performance of a plain array for dynamic resizing and a much richer built-in API — use a plain array only when the size is truly fixed and performance is critical.
Example: ArrayList vs Standard Arrays
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
int[] fixedArray = new int[3]; // fixed size
ArrayList<Integer> dynamicList = new ArrayList<>(); // resizes as needed
dynamicList.add(1);
dynamicList.add(2);
System.out.println(fixedArray.length);
System.out.println(dynamicList.size());
}
}
Login to try C/C++/Java/PHP code in the editor
Chapter Quiz — Complete all 17 topics to unlock
0/17 topics done
Complete these topics first:
- Java Data Structures
- Java Collections Introduction
- Java List Interface
- Java ArrayList
- Java LinkedList
- Java Map Interface
- Java HashMap
- Java Set Interface
- Java TreeMap
- Java LinkedHashMap
- Java HashSet
- Java TreeSet
- Java LinkedHashSet
- Java Stack & Queue
- Java Iterator
- Java Collections Class
- Java List Sorting