Importing ArrayList
java
import java.util.ArrayList;
Creating an ArrayList
java
ArrayList<String> names = new ArrayList<String>();
// or with diamond operator (preferred):
ArrayList<String> names = new ArrayList<>();
Common type declarations
java
ArrayList<String> words = new ArrayList<>();
ArrayList<Integer> numbers = new ArrayList<>();
ArrayList<Double> prices = new ArrayList<>();
ArrayList<Boolean> flags = new ArrayList<>();
Wrapper classes
java
ArrayList<Integer> nums = new ArrayList<>();
nums.add(42); // autoboxing: int → Integer
int val = nums.get(0); // unboxing: Integer → int
The core ArrayList methods
`add(E obj)` — append to end
java
ArrayList<String> colors = new ArrayList<>();
colors.add("red");
colors.add("blue");
colors.add("green");
System.out.println(colors); // [red, blue, green]
`add(int index, E obj)` — insert at position
java
colors.add(1, "yellow"); // insert at index 1
System.out.println(colors); // [red, yellow, blue, green]
`get(int index)` — retrieve element
java
String first = colors.get(0); // "red"
String second = colors.get(1); // "yellow"
`set(int index, E obj)` — replace element
java
colors.set(2, "navy"); // replace "blue" with "navy"
System.out.println(colors); // [red, yellow, navy, green]
java
String old = colors.set(0, "crimson");
System.out.println(old); // "red"
`remove(int index)` — remove by position
java
colors.remove(1); // removes "yellow"
System.out.println(colors); // [crimson, navy, green]
`size()` — number of elements
java
System.out.println(colors.size()); // 3
Step-by-step trace
java
ArrayList<Integer> list = new ArrayList<>();
list.add(10);
list.add(20);
list.add(30);
list.add(1, 15);
list.set(3, 35);
list.remove(0);
ArrayList of objects
java
public class Student {
private String name;
private int grade;
public Student(String name, int grade) {
this.name = name;
this.grade = grade;
}
public String getName() { return name; }
public int getGrade() { return grade; }
public String toString() {
return name + " (" + grade + ")";
}
}
java
ArrayList<Student> roster = new ArrayList<>();
roster.add(new Student("Alice", 95));
roster.add(new Student("Bob", 87));
roster.add(new Student("Carol", 92));
System.out.println(roster);
// [Alice (95), Bob (87), Carol (92)]
The `remove` trap with Integer
java
ArrayList<Integer> nums = new ArrayList<>();
nums.add(10);
nums.add(20);
nums.add(30);
nums.remove(1); // removes element at INDEX 1 → removes 20
// nums is now [10, 30]
java
nums.remove(Integer.valueOf(10)); // removes the value 10
Bounds checking
java
ArrayList<String> list = new ArrayList<>();
list.add("only");
list.get(5); // IndexOutOfBoundsException!
list.get(-1); // IndexOutOfBoundsException!
Printing an ArrayList
java
ArrayList<String> pets = new ArrayList<>();
pets.add("cat");
pets.add("dog");
pets.add("fish");
System.out.println(pets); // [cat, dog, fish]
Complete example: To-do list manager
java
import java.util.ArrayList;
public class TodoList {
private ArrayList<String> tasks;
public TodoList() {
tasks = new ArrayList<>();
}
public void addTask(String task) {
tasks.add(task);
}
public void insertTask(int position, String task) {
if (position >= 0 && position <= tasks.size()) {
tasks.add(position, task);
}
}
public String completeTask(int index) {
if (index >= 0 && index < tasks.size()) {
return tasks.remove(index);
}
return null;
}
public void printTasks() {
System.out.println("To-Do List (" + tasks.size() + " tasks):");
for (int i = 0; i < tasks.size(); i++) {
System.out.println(" " + (i + 1) + ". " + tasks.get(i));
}
}
public static void main(String[] args) {
TodoList todo = new TodoList();
todo.addTask("Study arrays");
todo.addTask("Practice FRQs");
todo.addTask("Review notes");
todo.insertTask(1, "Read chapter 7");
todo.printTasks();
String done = todo.completeTask(0);
System.out.println("\nCompleted: " + done);
todo.printTasks();
}
}
To-Do List (4 tasks):
1. Study arrays
2. Read chapter 7
3. Practice FRQs
4. Review notes
Completed: Study arrays
To-Do List (3 tasks):
1. Read chapter 7
2. Practice FRQs
3. Review notes
AP Exam Tips
- •
- •
- •
- •
- •
- •