Jelenlegi hely

21.2.2 Általános célú List implementációk

Két általános célú List implementáció létezik: ArrayList és LinkedList. Leggyakrabban valószínűleg az ArrayList–et fogjuk használni. Konstans elérési időt biztosít a lista elemeinek pozícionált elérésekor, egyszerű és gyors. Nem szükséges csomópont objektumot foglalni minden lista elemhez, és képes kihasználni a System.arraycopy nyújtotta előnyöket, amikor egyszerre több listaelemet kell mozgatunk.

Abban az esetben, ha gyakran kell elemeket hozzáadni egy lista elejéhez, vagy iterálni a listán, hogy valamelyik belső elemét kitöröljük, akkor érdemes LinkedList-t használni. Ezek a műveletek konstans idő alatt végrehajtódnak egy LinkedList-ben, míg egy ArrayList-ben lineáris idejűek, de ezért cserébe nagy árat kell fizetni a teljesítmény terén. A pozícionált elérés lineáris idejű LinkedList esetén, míg ugyanez konstans ArrayList-nél, továbbá ez a konstans-faktor a LinkedList esetében sokkal rosszabb.

Az ArrayList-nek egy állítható paramétere a kezdeti kapacitása. Ez azt határozza meg, hogy hány eleme legyen az ArryaList-nek, mielőtt növelni kéne az elemek számát. A LinkedList-nek nincs állítható paramétere.