
In java what is a difference between List Vs. ArrayList? In other words, have you ever wondered what is the difference between Arrays.asList(array) and ArrayList<Integer>(Arrays.asList(array))? This one is a simple Java program which demonstrates the difference between both, i.e. List Vs. ArrayList.
Let’s take a look at both statements first:
crunchifyList1 = new ArrayList<Integer>(Arrays.asList(crunchifyArray));
Here crunchifyList1 is of type ArrayList.. Very simple.
crunchifyList2 = Arrays.asList(crunchifyArray);
Here crunchifyList2 is a fixed-size list backed by the specified array. In our case it’s of type Integer. Also it’s of type List and not ArrayList.
What is a difference between List and Arraylist?
Answer is very simple. List is an interface, ArrayList is a class that implements List. Below are the list of all available methods for ArrayList.

Take a look at below Java program which clearly explains you the difference between the same.
package crunchify.com.tutorial;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/**
* @author Crunchify.com
*
*/
public class CrunchifyDiffArraysAsList {
public static void main(String[] args) {
List<Integer> crunchifyList1, crunchifyList2 = null;
Integer[] crunchifyArray = { 5, 7, 9 };
crunchifyList1 = new ArrayList<Integer>(Arrays.asList(crunchifyArray));
// crunchifyList1 is of type ArrayList
crunchifyList1.add(11);
// asList() returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.)
crunchifyList2 = Arrays.asList(crunchifyArray);
crunchifyList2.add(12); // add() method is not allowed to crunchifyList2.
// crunchifyList2 is returned as a List view, it has only the methods attached to that interface.
// Exception in thread "main" java.lang.UnsupportedOperationException
// at java.util.AbstractList.add(AbstractList.java:148)
// at java.util.AbstractList.add(AbstractList.java:108)
// at crunchify.com.tutorials.CrunchifyDiffArraysAsList.main(CrunchifyDiffArraysAsList.java:24)
// crunchifyList2.add(11); // Because of above exception you can't add value to crunchifyList2
log("crunchifyList1: ");
// iterator() returns an iterator over the elements in this list in proper sequence.
Iterator<Integer> crunchifyIterator1 = crunchifyList1.iterator();
while (crunchifyIterator1.hasNext()) {
log(crunchifyIterator1.next() + " ");
}
log("\ncrunchifyList2: ");
Iterator<Integer> crunchifyIterator2 = crunchifyList2.iterator();
while (crunchifyIterator2.hasNext()) {
log(crunchifyIterator2.next() + " ");
}
}
private static void log(String string) {
System.out.println(string);
}
}
After running above program you will see below exception:
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at java.util.AbstractList.add(AbstractList.java:108) at crunchify.com.tutorial.CrunchifyDiffArraysAsList.main(CrunchifyDiffArraysAsList.java:27)
Just commented out above highlighted line 27 and rerun the program to see below result.
Eclipse Console Result:
crunchifyList1: 5 7 9 11 crunchifyList2: 5 7 9
Hope you get clear picture about the difference between list vs arraylist in Java.
