Piroumian, Konstantin wrote:

>>Berin Loritsch wrote:
> 
>  <snip/>
> 
>>Buffers are really great for FIFO (first in, first out).
>>
>>For LIFO (last in, first out), the JDK offers java.util.Stack, but its 
>>use should avoided since it is synchronized. There's an unsynchronized 
>>replacement in org.apache.avalon.excalibur.collections.ArrayStack.
> 
> Why not use java.util.LinkedList instead of java.util.Stack?
> 

A LinkedList references the objects it contains using linked (as its 
name implies) nodes that reference values. So a node is created each 
time you add an object, and a node is thrown to garbage each time you 
remove an object.

This implementation is efficient when you have to insert/remove objects 
in the middle of the list : it just has to change some next/previous 
references, while an ArrayList must compact the underlying array.

The particularity of a FIFO is that insert/remove operations always 
occur at the end of the list. An array-based implementation just has to 
change the end-of-list index and the value for this index, while a 
LinkedList must allocate or garbage a new node.

This is why array-based list are more efficient for stacks than linked list.

Sylvain

-- 
Sylvain Wallez
Anyware Technologies - http://www.anyware-tech.com


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to