🧾 Key Differences Between ArrayList
and LinkedList
Feature | ArrayList | LinkedList |
---|---|---|
Underlying Structure | Dynamic array | Doubly linked list |
Access Time | Fast for random access (get(index) ) | Slower for random access (traverse nodes) |
Insertion/Deletion | Slower (elements shift on add/remove) | Faster for add/remove in middle or ends |
Memory Usage | Less overhead | More memory (extra node pointers) |
Traversal Speed | Faster (contiguous memory) | Slower (jumps between nodes) |
Best for | Frequent reads/access by index | Frequent inserts/deletes (esp. at ends) |
Thread Safety | Not synchronized | Not synchronized |
🧪 Quick Code Comparison
import java.util.*;
public class ListExample {
public static void main(String[] args) {
List arrayList = new ArrayList<>();
List linkedList = new LinkedList<>();
arrayList.add("Apple");
linkedList.add("Apple");
arrayList.get(0); // Fast
linkedList.get(0); // Slower
}
}
⚖️ In Simple Terms:
- Use
ArrayList
if you mostly read or access items using indexes. - Use
LinkedList
if you often add/remove items from the middle or ends.