Chad Stansbury wrote:
Your results piqued my interest. I have created a test program to determine at which point the linked list becomes more efficient than the array list. Here are my results:
List Size = 16 elements Iterations = 1,000,000 ArrayList = 331 ms LinkedList = 761 ms
List Size = 32 elements Iterations = 1,000,000 ArrayList = 391 ms LinkedList = 761 ms
List Size = 64 elements Iterations = 1,000,000 ArrayList = 460 ms LinkedList = 751 ms
List Size = 128 elements Iterations = 1,000,000 ArrayList = 601 ms LinkedList = 751 ms
List Size = 256 elements Iterations = 1,000,000 ArrayList = 881 ms LinkedList = 761 ms
As you can see, the linked list's add/remove time remains constant, while the array list experiences linear degradation. The crossover point being somewhare around 200 some elements. Anyway, it was an interesting exercise. Below is the program I used to test this, and all results above were generated w/ a P4 @ 1.4GHz, 512 MB RAM.
I ran your test, and for my machine (arguably slower) the crossover point was 512 elements.
I then altered it to be more in line with how I was using the Lists before: I added to the tail, and removed from the head.
Both CircularBuffer and LinkedList exibited constant time access. The interesting thing is that ArrayList is more efficient operating the way I told it to. The crossover point was pushed back to somewhere around 624 elements.
Armed with this knowledge, I think the CircularBuffer is the better approach, and am not likely to implement a LinkedList version of the Queue.
--
"They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." - Benjamin Franklin
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>