Support Online
Skip to main content

How to Use add() and addAll() Methods in Java List Data Structure?

What Will You Learn in This Guide?
This technical guide teaches the add() and addAll() methods, two main ways to add elements to the List data structure, one of Java's most basic collection structures.
You will practically see individual data entry, bulk data transfer, the difference between ArrayList vs LinkedList and performance advantages.
You will also learn how to avoid UnsupportedOperationException errors in immutable lists.

1️⃣ add() Method – Adding a Single Element

The add() method adds a single element to a list.
There are two ways to use it:

GenreDescriptionComplexity
add(E element)Adds the element to the end of the list.O(1) amortized
add(int index, E element)Adds to specific position, shifts others.O(n)
import java.util.ArrayList;
import java.util.List;

public class TekilEklemeOrnegi {
public static void main(String[] args) {
List<String> sesliler = new ArrayList<>();
sesliler.add("A");
sesliler.add("E");
System.out.println("Sona ekleme sonrası: " + sesliler);

sesliler.add(1, "İ");
System.out.println("İndeksli ekleme sonrası: " + sesliler);
}
}

🗒️ It is a simple, fast and reliable method for small arrays.


2️⃣ addAll() Method – Bulk Adding Elements

The addAll() method adds all elements of another collection to the current list in a single operation.

GenreDescriptionComplexity
addAll(Collection c)Adds all elements to the end of the list.O(n)
addAll(int index, Collection c)Bulk inserts at the specified location.O(n)

import java.util.*;

public class TopluEklemeOrnegi {
public static void main(String[] args) {
List<Integer> asalSayilar = new ArrayList<>();
List<Integer> kucukAsallar = Arrays.asList(2, 3, 5);

asalSayilar.addAll(kucukAsallar);
System.out.println("İlk ekleme: " + asalSayilar);

asalSayilar.addAll(0, Arrays.asList(1));
System.out.println("Başa ekleme: " + asalSayilar);
}
}

🚀 Performance Note:

addAll() is 2-3 times faster than multiple calls to add() via the loop because it reduces the cost of resizing by pre-allocating memory.


3️⃣ Error Handling – UnsupportedOperationException

Since some List structures are immutable, they do not support add() or addAll().

StatusError CodeSolution
Arrays.asList()Arrays.asList("A", "B").add("C");new ArrayList<>(Arrays.asList("A", "B"))
List.of() (Java 9+)List.of("X", "Y").add("Z");new ArrayList<>(List.of("X", "Y"))

⏱️ Performance Comparison (Big O Notation)

MethodArrayListLinkedListDescription
add(E)O(1) amortizedO(1)Adding singular
add(int, E)O(n)O(1) + traversalLocation based addition
addAll(Collection)O(n)O(n)Bulk add
addAll(int, Collection)O(n)O(n)Insertion

❓ Frequently Asked Questions (FAQ)

  1. When should add() and addAll() be preferred?

add() is more efficient for small operations, and addAll() is more efficient for large data sets.

  1. Does addAll() add duplicate elements?

Yes, List allows duplicate values.

  1. How to avoid NullPointerException?

Make sure the collection is not null before addAll():


if (data != null) list.addAll(data);
  1. Why can't I add to immutable lists?

Arrays.asList() and List.of() return a fixed-size list — its structure cannot be changed.


🧠 Conclusion

In Java:

Adding a single element → add()

Bulk insertion → addAll()

Immutable errors → new ArrayList<>(...) solution

Optimize your code for its performance and structure; Increase both readability and speed.

🚀 Create your own Java project on GenixNode and experience this difference.