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