Ostatnio przeczytałem ten oto artykuł: http://www.programcreek.com/2013/03/arraylist-vs-linkedlist-vs-vector/ . Wykres słupkowy, który pojawia się na końcu wydaje się być sensowny kiedy przyjrzymy się wewnętrznej implementacji tych struktur. Niemniej jednak postanowiłem sam skonfrontować wydajność tych kolekcji i niektóre wyniki trochę mnie zadziwiły.
Po pierwsze ArrayList wychodzi mi na testach zawsze lepiej niż LinkedList.
Po drugie czasy uzyskiwane przez LinkedList podczas dodawania elementów są zupełnie kosmiczno-randomowe.
Zdaję sobie sprawę, że nie zapewniłem tym testom laboratoryjnych warunków. Ale postarałem się jak mogłem aby były jak najbardziej rzetelne. Wyłączyłem wszystko co mogłoby działać w tle i zakłócać wyniki (w miarę możliwości). Testy były powtarzane setki razy dla uśrednienia czasów. Ponadto testy dla metody add(Object o) powtórzyłem następnego dnia, ale mimo to wyniki były tak samo dziwne. Mógłby mi ktoś wytłumaczyć dlaczego tak to wygląda?