What is the difference between Collection.add() method and Collection.addAll() method in Collections in Java

Viewed 13281

I have two ArrayLists (a1 and a2) as below:

ArrayList a1 = new ArrayList();
a1.add(8);
a1.add("a1");

ArrayList a2 = new ArrayList();
a2.add(a1); //output : [[8, a1]]
a2.addAll(a1); //output : [[8, a1], 8, a1]

My Questions:

  1. Why does a2.addAll() method prints the data twice?
  2. What is the exact difference between add and addAll? Both the methods return boolean.
5 Answers

package others;

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

public class Practise {

public static void main(String[] args) {

//difference between add and addall 

    List<Integer> arrList = new ArrayList<Integer>(2);
    arrList.add(5);
    arrList.add(10);
    System.out.println("printing arrayLIst 1");

    for(Integer printNumber: arrList) {
        System.out.println(printNumber);
    }

    List<Integer> arr2List = new ArrayList<Integer>();
    arr2List.add(2);
    arr2List.add(4);
    System.out.println("printing arrayLIst 2");

    for(Integer printNumber:arr2List) {
        System.out.println(printNumber);
    }

    arrList.addAll(arr2List);
    System.out.println("printing updated arrayLIst 1");

    for(Integer printNumber: arrList) {
        System.out.println(printNumber);
    }   
}

}

output

printing arrayLIst 1

5 10

printing arrayLIst 2

2 4

printing updated arrayLIst 1

5 10 2 4

Related