Understanding the Differences: ArrayList vs LinkedList

In this topic, we will learn about the difference between ArrayList and LinkedList. The ArrayList and LinkedList are both predefined implementation classes of the List interface. These classes are available in the java.util package.

ArrayList vs LinkedList

ArrayListLinkedList
This class inherits the features of a list as it implements the List interface.This class inherits the features of a list and queue as it implements the List and Dequeue interfaces.
This class’s underlying data structure is a resizable or growable array.The underlying data structure is double LinkedList.
This class has a default capacity is “10”.This class has no default capacity.
This class provides a better performance for add and search operations.This class provides better performance for insertion or deletion in the middle.
This class implements the RandomAccess interface.This class is not implemented RandomAccess

There are a few similarities between ArrayList and LinkedList:
   • Both classes are implemented List interface.
   • Both classes are insertion order is preserved.
   • Both classes are allowed heterogeneous objects.
   • Both classes have null insertion is possible.

When to use ArrayList and LinkedList? 

   • If more searches, fewer add and fewer remove operations then in this case use of ArrayList is the best choice. 
   • If frequent addition and deletion operations then in this case use of LinkedList is the best choice. 

Example of ArrayList in Java

In this example, we are creating an ArrayList object and adding some elements to the created ArrayList.

import java.util.ArrayList;
public class SpringJava{
public static void main(String args[]){
//creating an ArrayList object
ArrayList<String> al=new ArrayList<>();
//adding elements
al.add("Pen");
al.add("Pencil");
al.add("Book");
al.add("Notebook");
//printing an ArrayList
System.out.println("ArrayList elements: "+ al);
   }
}

Output

ArrayList elements: [Pen, Pencil, Book, Notebook]

Example of LinkedList in Java

In this example, we are creating a LinkedList object and adding some elements to the created LinkedList adding an element at the first position and removing an element from the last position.

import java.util.LinkedList;
public class SpringJava{
public static void main(String args[]){
//creating a LinkedList object
LinkedList<String> l=new LinkedList<>();
//adding elements
l.add("Pen");
l.add("Pencil");
l.add("Book");
l.add("Notebook");
//printing a LinkedList
System.out.println("LinkedList elements: "+ l);
//add element at the first position
l.addFirst("Bag");
//printing a LinkedList
System.out.println("LinkedList elements: "+ l);
//remove element from the last position
l.removeLast();
//printing a LinkedList
System.out.println("LinkedList elements:  "+ l);
   }
}

Output

LinkedList elements: [Pen, Pencil, Book, Notebook]
LinkedList elements: [Bag, Pen, Pencil, Book, Notebook]
LinkedList elements: [Bag, Pen, Pencil, Book]

FAQ

Q1: When would you choose to use ArrayList over LinkedList?
Ans. When we use ArrayList in case more search operations than adding and deleting scenarios.
Q2: Why ArrayList is faster than LinkedList?
Ans. In the ArrayList, all the elements are located next to each other in the same memory space.
Q3: Is ArrayList more efficient than LinkedList?
Ans. ArrayList is faster in storing and searching data.

Conclusion

In this topic, we learnt about the differences between ArrayList and LinkedList with examples and when to use ArrayList and LinkedList in Java.

Leave a Comment