Sunday, 13 October 2013

Difference between ArrayList and LinkedList

Difference between ArrayList and LinkedList
1.      Since Array is an index based data-structure searching or retrieving element from Array with index is pretty fast. Array provides O(1) performance for get(index) method but remove is costly in ArrayList as you need to rearrange all elements. On the Other hand LinkedList doesn’t provide Random or index based access and you need to iterate over linked list to retrieve any element which is of order O(n).
2.      Insertions are easy and fast in LinkedList as compared to ArrayList because there is no need of resizing array and copying content to new array if array gets full which makes adding into ArrayList to amortized constant time of O(n) in worst case, while adding is O(1) operation in LinkedList in Java. ArrayList also needs to update its index if you insert something anywhere except at the end of array.
3.      Removal is like insertions better in LinkedList than ArrayList. LinkedList won’t need to re-arrange elements on removal.
4.      LinkedList has more memory overhead than ArrayList because in ArrayList each index only holds actual object (data) but in case of LinkedList each node holds both data and address of next and previous node.
5.      ArrayList should be used where you have more retrieval than insertions and deletions. while the LinkedList should be used when you have more insertions and deletions as it won’t need resizing on insertions and deletions.

No comments:

Post a Comment

Very Impotent Links for Java and Portal development development

Jar Download for Spring  Maven Or Gradel Dependency for Spring