question about linked lists
I would like to start off saying hello, and I also want to apologize if this seems to be a remedial question... I am just drawing a blank, and have been yet to find a solid answer to my question... anyways, I am trying to learn as much as possible about java and I am currently looking into linked list structures in depth, specifically doubly linked lists. I am a little confused as to how the addBefore(position<P> p, Element E) mehtod works. This is the way it is written in my book. Basically, the method is supposed to insert a new node with the data of E before a node p. I am a little confused as to how to reference nodes in a doubly linked list when the node is being refered to by its data (Element). from what I understand, if you have the doubly linked list H<=>1<=>2<=>4<=>t and you call addBefore(4,3), the result should be H<=>1<=>2<=>3<=>4<=>t. This is fine for a sorted list, but what happens if you have multiple nodes with the same data in it? and is that possible? (ie. H<=>2<=>1<=>2<=>t thus when calling the addBefore(2,1) mehtod, 1 would be entered before the first 2, and not the second.)
I guess my basic question is how does the position() mehod work in a unsorted list, and can it work if there is multiple elements in the list with the same data? Any help will be much appreciated. thank you.