Problema 21

In cazul lui "ArrayList" se acceseaza direct pozitia "i", pe cand in cazul lui LinkedList trebuie sa parcurga de la inceput pana sa ajunga la pozitia "i".

In cazul in care vrem sa inseram sau sa stergem un element de pozitia "i":

    • Pentru ArrayList: se sterge elementul de pe pozitia "i", iar toate elementele din dreapta pozitiei "i" vin cu o pozitie mai la stanga,astfel se "shifteaza" toate elementele de la pozitia i+1 pana la sfarsitul listei cu o pozitie la stanga. In cazul insertiei, se deplaseaza toate deplaseaza toate elementele incepand cu pozitia "i" cu o pozitie mai la dreapta.

    • Pentru LinkedList: se modifica referinta de la nodul "i-1" catre nodul "i+1", In cazul insertiei, se modifica referinta de la nodul "i-1" catre nodul adaugat, iar nodul adaugat va avea referinta catre fostul nod "i"

Astfel, in cazul accesului aleatoriu la un element al colectiei, ArrayList este mai eficient, iar in cazul insertiei, respectiv eliminarii unui element, LinkedList este mai eficient.