Skip to main content
Collections framework · Topic 2 of 8

ArrayList vs LinkedList

Definition​

A List keeps items in order and allows duplicates. ArrayList stores items in an array, so reading by position is fast. LinkedList chains nodes together, so adding at the ends is fast but reading by position is slow. Choose ArrayList almost every time.

Example code​

The same list operations on both

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

class Demo {
public static void main(String[] args) {
List<String> array = new ArrayList<>(); // backed by an array: get(i) is fast
List<String> linked = new LinkedList<>(); // backed by linked nodes: get(i) walks the chain

for (String name : List.of("Asha", "Ravi", "Meera")) {
array.add(name);
linked.add(name);
}
array.add(1, "Jo"); // insert in the middle: shifts the items after it
linked.add(1, "Jo");

System.out.println(array.get(2) + " " + linked.get(2));
System.out.println(array);
System.out.println(linked);
}
}

// Output:
// Ravi Ravi
// [Asha, Jo, Ravi, Meera]
// [Asha, Jo, Ravi, Meera]

Finished this page? Track your progress (saved only in your browser).