• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

LinkedList vs ArrayList Iteration

 
Ranch Hand
Posts: 411
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi all,

Can someone explain me Why LinkedList is faster than ArrayList from iterating point of view ?

Is it because the underlying implementation of LinkedList is doubly link list ?

TIA
 
Jay Pawar
Ranch Hand
Posts: 411
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Any takers ?
 
Ranch Hand
Posts: 151
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I will assume that your premise is true that "linkedList is faster than ArrayList from iterating point of view."

A look at the class' hierarchies and their interfaces reveals the following:


Judging simply by the collections' superclasses' names and their interfaces, I'd think that LinkedList would be faster to iterate over the entire collection because LinkedList has a superclass called AbstractSequentialList, which may be aptly named because of its underlying implementation.

ArrayList implements an interface named RandomAccess, which again seems to hint at some underlying functinality. The RandomAccess interface indicates to me that seeking any single member via random access should be faster than through iterating over the entire collection via sequential access.

Your question is "Why (is) LinkedList faster than ArrayList from iterating point of view?" My answer, based solely on the interface and superclass names is that iterating over an entire collection is faster (or, at least by my intuition, should not be slower) via sequential than random access.
 
Ranch Hand
Posts: 56
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
For iteration or faster access ArrayList adds better performance.
For faster insertion LinkedList is used.

This is because ArrayList is not synchronized and hence the speed for accessing the elements using the index from the list is faster.

LinkedList implements doublyLinkedList so access to elements requires the list to be traversed using the links.

Mathangi.
 
Jay Pawar
Ranch Hand
Posts: 411
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks J Borderi that helps.

Mathangi,
I agree with you on the fact that ArrayList is not synchronized. However, LinkList is not synchronized either. It is only the Vector which is synchronized.
One more thing to add, LinkList IS FASTER than ArrayList for iterating. Please follow this link here for more details.

Thanks to both of you.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic