top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

What is the differeence between arrayList and Linkedlist in Java?

+2 votes
538 views
What is the differeence between arrayList and Linkedlist in Java?
posted Oct 28, 2015 by anonymous

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

2 Answers

+2 votes

ArrayList and LinkedList both implements List interface and maintains insertion order. Both are non synchronized classes.

But there are many differences between ArrayList and LinkedList classes that are given below.

ArrayList

1) ArrayList internally uses dynamic array to store the elements.

2) 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.

3) ArrayList class can act as a list only because it implements List only.

4) ArrayList is better for storing and accessing data.

LinkedList

  1. LinkedList internally uses doubly linked list to store the elements.

  2. Manipulation with LinkedList is faster than ArrayList because it uses doubly linked list so no bit shifting is required in memory.

  3. LinkedList class can act as a list and queue both because it implements List and Deque interfaces.

  4. LinkedList is better for manipulating data.

Let's see a simple example where we are using ArrayList and LinkedList both.

import java.util.*;    
class TestArrayLinked{    
 public static void main(String args[]){    

  List<String> al=new ArrayList<String>();//creating arraylist    
  al.add("Ravi");//adding object in arraylist    
  al.add("Vijay");    
  al.add("Ravi");    
  al.add("Ajay");    

  List<String> al2=new LinkedList<String>();//creating linkedlist    
  al2.add("James");//adding object in linkedlist    
  al2.add("Serena");    
  al2.add("Swati");    
  al2.add("Junaid");    

  System.out.println("arraylist: "+al);  
  System.out.println("linkedlist: "+al2);  
 }    
}    

Output:

arraylist: [Ravi,Vijay,Ravi,Ajay]

linkedlist: [James,Serena,Swati,Junaid]
answer Oct 30, 2015 by Karthick.c
+1 vote

Here are some difference between Java ArrayList and Linkedlist :-

  1. ArrayList is backed by Array while LinkedList is backed by LinkedList. This will lead further differences in performance.
  2. LinkedList also implements Deque interface, which provides first in first out operations for add() and poll() and several other Deque functions. Also, LinkedList is implemented as a doubly linked list and for index based operation navigation can happen from either end.
  3. Adding element in ArrayList is O(1) operation if it doesn't trigger re-size of Array, in which case it becomes O(log(n)) , On the other hand appending an element in LinkedList is O(1) operation, as it doesn't require any navigation.
  4. Remove an element from a particular index e.g. by calling remove(index), ArrayList performs a copy operation which makes it close to O(n) while LinkedList needs to traverse to that point which also makes it O(n/2), as it can traverse from either direction based upon proximity.
  5. Iteration is the O(n) operation for both LinkedList and ArrayList where n is a number of an element.
  6. get(index) operation is O(1) in ArrayList while its O(n/2) in LinkedList, as it needs to traverse till that entry.
  7. LinkedList uses a wrapper object, Entry, which is a static nested class for storing data and two nodes next and previous while ArrayList just stores data in Array. So memory requirement seems less in the case of ArrayList than LinkedList except the case where Array performs the re-size operation when it copies content from one Array to another. If Array is large enough it may take a lot of memory at that point and trigger Garbage collection, which can slow response time.
answer Oct 12, 2016 by Ramya
...