ArrayList and LinkedList both implements List interface and maintains insertion order. Both are non synchronized classes. Differences between ArrayList and LinkedList classes that are given below.
ArrayList | LinkedList |
---|---|
ArrayList internally uses dynamic array to store the elements. | LinkedList internally uses doubly linked list to store the elements. |
Manipulation with ArrayList is slow because it internally uses array. If any element is removed from the array, all the bits are shifted in memory. | Manipulation with LinkedList is faster than ArrayList because it uses doubly linked list so no bit shifting is required in memory. |
ArrayList class can act as a list only because it implements List only. | LinkedList class can act as a list and queue both because it implements List and Deque interfaces. |
ArrayList is better for storing and accessing data. | LinkedList is better for manipulating data. |
Example
import java.util.*; class TestArrayLinked{ public static void main(String args[]){ // Arraylist List<String> al=new ArrayList<String>(); al.add("Ravi"); al.add("Vijay"); // Linkedlist List<String> al2=new LinkedList<String>(); al2.add("James"); al2.add("Serena"); } }