• 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

Arraylist and linklist !!

 
Ranch Hand
Posts: 244
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello friends ,
I am back here with some doubts of mine and hope that you all would surely give a thought on it and help me out.
I am hereby looking for what are the differences between arraylist and linklist and which one is better suited for what applications ??
I hope i get a good response to this query .This is relatively simply query but stll lots to explore on it.
Thanks in adavance,
SAurabh
 
Ranch Hand
Posts: 1258
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well, first of all, we don't really have a linked list in Java, strictly. ArrayList is an actual class that you can use in your program. Is it implemented using a linked list? Probably. I think so. The point is who knows, and who cares.
ArrayList is just a mechanism to treat a container as a resizable array. If you've had a data structures class, you can decide what to use by your performance and complexity needs. It really depends on what what your application needs to do. Depending on that, you can decide which type of container is suitable for your program.
 
Saurabh Agrawal
Ranch Hand
Posts: 244
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello friend ,
Thanks for your answer but i am looking to a specific answer about the simple differences between a linklist and arraylist and where to use arraylist and where to use link list ??
I hope somebody would revert back to it.
Thanks,
SAurabh
 
Ranch Hand
Posts: 704
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The class java.util.LinkedList implements the List interface and is useful for all stack, queue, deque operations. It has all the usual behaviour expected with a linked list.
java.util.ArrayList also implements the List inteface but as resizable Array, because an Array must always have a known capacity there is a time factor involved in the resizing of the Array. ArrayList can be thought of as a non-synchronised Vector
Regards
Nigel
 
Saurabh Agrawal
Ranch Hand
Posts: 244
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks nigel,
So what it means is that there is just the difference of dynamisn between linklist and arraylist i.e arraylist size can be dynamically increased.Is it so ? or there are still more major issues worth it..
Looking forward to your response,
Saurabh
 
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Wow, there's a lot of untruth in this thread.


Well, first of all, we don't really have a linked list in Java, strictly.


Actually, we do: the java.util.LinkedList class.


Is [ArrayList] implemented using a linked list? Probably. I think so. The point is who knows, and who cares.


Well, actually, it's not, and everyone knows, and everyone should care.
ArrayList is well-documented to use an array as a backing store. This has a very specific impact on its performance characteristics. Accessing the 37th element of an ArrayList is very fast. Deleting an element in the middle is slow. This is quite the opposite of how a linked list behaves. That's why there are both: so you can choose which to use based on what's important for your appplication.


So what it means is that there is just the difference of dynamisn between linklist and arraylist i.e arraylist size can be dynamically increased.I


Both an ArrayList and a LinkedList can have elements added to them and/or removed from them, so no, that's not the difference. The difference is the performance, as mentioned above and as described in more detail in the Javadocs. If you need to delete elements in the middle, use a LinkedList. If you need random access, then an ArrayList may be better. Note that LinkedLists have more memory overhead, too.
 
Ranch Hand
Posts: 399
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Confession ... I chuckled as I read Ernest's reply, to which I say "AMEN!"
There are several good tutorials on collections, and a good starting place is SunsSun's collections tutorial. It should answer a lot of your questions.
Second, Sun does a great service by providing a (nearly) complete source code with the JDK. So you can look at the source and see exactly what is happening. If you look at the source for java.util.ArrayList, you'll see:

whereas for java.util.LinkedList, you'll see:

Obviously an ArrayList manages its data using an array, which means as it grows dynamically the array will have to be re-allocated from time to time. The LinkedList is a set of linked "Entry" instances.
Choosing the correct collection to use becomes easier as you become more familiar with Java, and seeing the source code can help you make that decision. You can also write a simple application that adds, searches for, iterates through and deletes a bunch of things using different collections, and then seeing how long each takes to run.
Good luck with Java, Saurabh ...
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic