Rozdiel medzi zoznamom polí a prepojeným zoznamom v Jave

Autor: Laura McKinney
Dátum Stvorenia: 3 Apríl 2021
Dátum Aktualizácie: 10 Smieť 2024
Anonim
Rozdiel medzi zoznamom polí a prepojeným zoznamom v Jave - Technológie
Rozdiel medzi zoznamom polí a prepojeným zoznamom v Jave - Technológie

Obsah


ArrayList a LinkedList sú zbierka triedy a obe implementujú zoznam rozhranie. Trieda ArrayList vytvorí zoznam, ktorý je interne uložený v a dynamický rad ktorá sa po pridaní alebo odstránení prvkov zväčšuje alebo zmenšuje. LinkedList tiež vytvorí zoznam, ktorý je interne uložený v dvojnásobne Spojený zoznam, Obe triedy sa používajú na ukladanie prvkov do zoznamu, ale hlavný rozdiel medzi triedami ArrayList a LinkedList je ten, že ArrayList umožňuje náhodný prístup k prvkom v zozname, pretože funguje na index na báze dátová štruktúra. Na druhej strane lineárny zoznam nepovoľuje náhodný prístup, pretože nemá indexy na priamy prístup k prvkom, musí prejsť zoznamom, aby získal alebo získal prístup k prvku zo zoznamu.


Poďme diskutovať o niektorých ďalších rozdieloch medzi ArrayListom a LinkedListom pomocou nižšie uvedenej porovnávacej tabuľky.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnanieArrayListlineárny zoznam
základné ArrayList umožňuje náhodný prístup k prvkom v zozname.LinkedList neumožňuje náhodný prístup k prvkom v zozname.
Dátová štruktúraVnútorná štruktúra použitá na ukladanie prvkov je dynamické pole.Vnútorná štruktúra použitá na ukladanie prvkov je dvojnásobným zoznamom odkazov.
rozširujeArrayList rozširuje triedu AbstarctList.LinkedList rozširuje AbstractSequentialList.
náradieAbstractList implementuje rozhranie zoznamu.LinkedList implementuje List, Deque, Queue.
prístup Prístup k prvkom v zozname je v ArrayList rýchlejší.Prístup k prvkom v zozname je v LinkedList pomalší.
manipuláciaManipulácia s prvkami v zozname je v ArrayList pomalšia.Manipulácia s prvkami v zozname je v LinkedList rýchlejšia.
správanieArraylList sa správa ako zoznam pri implementácii zoznamu.Prepojený zoznam sa správa ako Zoznam aj ako Fronta, pretože implementuje Zoznam aj Fronta.


Definícia zoznamu polí

AbstractList trieda je definovaná Rámec zberu, To sa rozširuje AbstarctList a implementuje zoznam rozhranie. Používa ArrayList dynamické pole t.j. pole s premenlivou dĺžkou ako vnútorná dátová štruktúra na ukladanie prvkov v zozname. Potreba ArrayListu vyvstáva, keď je pole v jave s pevnou dĺžkou. Pri pridávaní alebo odstraňovaní prvkov z poľa teda nemôže narásť ani zmenšovať svoju veľkosť. Preto musíte vopred poznať veľkosť požadovaného poľa. Zoznam polí implementovaných pomocou triedy ArrayList sa však môže zväčšovať a zmenšovať, keď sú prvky pridané alebo odstránené z poľa.

Zoznam polí implementovaných pomocou ArrayList je prístupný náhodne ako ArrayList pracuje na indexovom základe. Takže s vedomím indexu môžete priamo pristupovať k prvkom zoznamu. Existujú tri konštruktory ArrayList:

ArrayList () ArrayList (Zbierka <? Rozširuje E> c) ArrayList (int kapacita)

najprv konštruktor implementuje prázdny zoznam polí. druhý konštruktor implementuje zoznam polí inicializovaný pomocou Zbierka c prvky. tretina konštruktor implementuje zoznam polí pomocou kapacita uvedené v argumente. Pri práci s ArrayList budete niekedy potrebovať konverziu ArrayList Collection do poľa. Môže sa to uskutočniť volaním ToArray ().

Definícia prepojeného zoznamu

Rovnako ako ArrayList, lineárny zoznam je tiež zbierka použitie triedy dvojnásobne prepojený zoznam ako interná dátová štruktúra na ukladanie prvkov v zozname. Trieda LinkedList sa rozširuje AbstractSequentialList a implementuje zoznam, deque a fronta rozhranie. Na prepojený zoznam implementovaný pomocou LinkedList nie je možné pristupovať náhodne. Ak chcete načítať akýkoľvek prvok zo zoznamu, musíte tento zoznam opakovať, aby ste ho mohli vyhľadať.

V triede LinkedList sú dva konštruktory.

LinkedList () LinkedList (Zbierka <? Rozširuje E> c)

najprv konštruktor vytvorí prázdny prepojený zoznam. druhý konštruktor vytvorí prepojený zoznam, inicializovaný pomocou prvkov zbierka C.

V LinkedList je manipulácia so zoznamom ľahká a rýchla. Je to tak preto, že ak pridáte alebo odstránite akýkoľvek prvok v zozname, nie je potrebné posúvať prvky ako v ArrayList. Prístup je však pomalší, pretože nemá index na priamy prístup k prvkom.

  1. Zoznam implementovaný pomocou ArrayList je prístupný náhodne, pretože ArrayList prijíma indexovú dátovú štruktúru poľa založenú na indexe. Na druhej strane k zoznamu implementovanému v zozname Zoznam sa nedá pristupovať náhodne, pretože na získanie alebo prístup k určitému prvku v zozname musíte zoznam prejsť.
  2. Interná dátová štruktúra, ktorú používa ArrayList na ukladanie prvkov zoznamu, je dynamické pole ktoré sa môžu pri pridávaní alebo odstraňovaní prvkov zo zoznamu zväčšovať alebo zmenšovať. Interná dátová štruktúra, ktorú používa LinkList na ukladanie prvkov v zozname, je dvojnásobne prepojený zoznam.
  3. ArrayList rozširuje AbstractList trieda, ktorá je tiež triedou Zbierka, zatiaľ čo trieda LinkedList sa rozširuje AbstractSequentialList trieda, ktorá je opäť triedou Zbierka.
  4. Implementuje sa trieda ArrayList zoznam rozhranie, zatiaľ čo trieda LinkedList implementuje zoznam, frontaa deque rozhranie.
  5. Prístup k prvkom zo zoznamu implementovaného pomocou ArrayList je rýchlejšie pretože má indexovú štruktúru údajov. Na druhej strane neexistuje v zozname implementovaná byLinkledList žiadna štruktúra založená na indexoch. Preto je v zozname aplikovaný iterátor na dosiahnutie prvku, ktorý má byť prístupný, čo umožňuje prístup pomalšie v LinkedList.
  6. Manipulácia je Manipulácia v zozname implementovanom pomocou ArrayList, pretože kedykoľvek sa prvok pridá alebo odstráni zo zoznamu, prvky v zozname sa posunú, aby sa prispôsobili zmene. Na druhej strane manipulácia je rýchlejšia v zozname implementovanom LinkListom, pretože nevyžaduje pridanie alebo vymazanie prvkov zo zoznamu, posunutie prvkov v zozname.
  7. ArrayList sa chová ako zoznam keďže implementuje rozhranie zoznamu, zatiaľ čo LinkedList funguje ako zoznam a fronta pretože implementuje zoznam aj front.

záver:

Ak sa časté prvky v zozname často pridávajú alebo odstraňujú, musí sa použiť LinkedList, pretože počas manipulácie má lepšie výsledky. Ak sa v zozname použije časté vyhľadávanie, ArrayList je najlepšou voľbou, pretože má lepší prístup pri prístupe k prvkom zo zoznamu.