konto usunięte

Temat: Listy

Mam pytanie odnośnie różnicy ArrayList i LinkedList.

Czy poza tym, że ArrayList ma mniej metod i jest szybsza jeśli chodzi o iterację, a LinkedList ma więcej metod jak np te z interfejsu Queue i jest szybsza w operacach insercion, deletion są jakieś większe różnice ?

Znalazłem też taką notkę o tym, że elementy w LinkedList są doubly-linked, mógłby ktoś to wyjaśnić ?
Andrzej Chodor

Andrzej Chodor architekt IT,
programista

Temat: Listy

Pytasz tak naprawdę o różnice pomiędzy tablicą (ArrayList) i listą dwukierunkową (LinkedList). Odpowiedź znajdziesz w każdej publikacji wprowadzającej w struktury danych :)

http://pl.wikibooks.org/wiki/Struktury_danych/Tablice
http://pl.wikibooks.org/wiki/Struktury_danych/Listy

W kontekście implementacji javowych warto też zerknąć na:
http://stackoverflow.com/questions/322715/when-to-use-...

ps. Iteracja po liście wcale nie musi być wolniejsza, wszystko zależy od sposobu iteracji.
Paweł Wenerski

Paweł Wenerski Oracle Fusion
Middleware
Consultant | Java
Full Stack Des...

Temat: Listy

Piotr Żak:
Znalazłem też taką notkę o tym, że elementy w LinkedList są doubly-linked, mógłby ktoś to wyjaśnić ?

Chodzi o to, że element LinkedList zna swojego poprzednika i następnika (posiada wskaźnik do elementu poprzedniego i wskaźnik do elementu następnego), poniewaź implementuje interfejs kolejki Queue. Polecam także sprawdzenie implementacji LinkedList i wszystko się wyjaśni.

Różnice między ArrayList a LinkedList są następujące:
- w AL szybciej odczytuje się dany element niż w LL,
- natomiast gdy często dodaje się elementy lub usuwa to należy stosować LL, dlatego, że AL jest implementowana za pomocą tablic.

Tutaj masz opisane różnice:

http://www.narendranaidu.com/2006/09/arraylist-vs-link...

konto usunięte

Temat: Listy

Paweł Wenerski:
Piotr Żak:
Znalazłem też taką notkę o tym, że elementy w LinkedList są doubly-linked, mógłby ktoś to wyjaśnić ?

Chodzi o to, że element LinkedList zna swojego poprzednika i następnika (posiada wskaźnik do elementu poprzedniego i wskaźnik do elementu następnego), poniewaź implementuje interfejs kolejki Queue. Polecam także sprawdzenie implementacji LinkedList i wszystko się wyjaśni.

Polecam sprawdzenie różnic między abstrakcją (interfejsy) a implementacją (klasy).

Następna dyskusja:

Enterprise Architect a list...




Wyślij zaproszenie do