In this post, we will see the difference between List and ArrayList in Java.
List is an interface where ArrayList is concrete implementation, so List is more generic than ArrayList.
You can instance an ArrayList in below two ways.You might have seen this code before.
1 2 3 4 5 6 |
// 1st way List<String> list=new ArrayList<String>(); //2nd way ArrayList<String> arrayList=new ArrayList<String>(); |
If you use 1st way, you can change the implementation later easily.
For example:
You need to change your implementation from ArrayList to LinkedList, you can simply change implementation, you don’t need to worry about making changes to all the code where variable list is being used.
1 2 3 |
List<String> list=new LinkedList<String>(); |
You won’t be able to do it in case of 2nd way.
It is always a good idea to code to an interface rather than concrete implementation.
List vs ArrayList
Let’s see tabular difference between List and ArrayList in java.
Parameter | List | ArrayList |
---|---|---|
Implementation | List is interface and does not have any implementation | ArrayList is concrete implementation and ArrayList implements List interface |
Methods | List method can access methods which is available in interface. For example: It can not access method trimToSize because it available in ArrayList | ArrayList contains extra methods such trimToSize(), ensureCapacity() which is not in List interface. |
Changing Implementation | You can change implementation later. For example: You want to change implementation from ArrayList to LinkedList, you can do it. | You can not change implementation as ArrayList is already concrete implementation. |
Recommendation | List is preferred over ArrayList as you can change implementation | ArrayList over List not preferred as you have to stick with ArrayList.You won't be able to change implementation later. |
that’s all about List vs ArrayList in java.