Always keep CPU caches in mind when choosing an algorithm. This article shows why arrays can perform better than linked lists even with lots of inserts involved.
The article missed to mention that the underlaying array is not growing linear with lists's length, but (IIRC) doubled in size for every resize step. Thus you don't have the alloc-copy-gc-overhead for every insert.
Add a comment...