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]>