Kľúčový rozdiel - ArrayList vs LinkedList
Zbierky sú užitočné na ukladanie údajov. V normálnom poli je veľkosť poľa pevná. Niekedy je potrebné vytvoriť polia, ktoré môžu podľa potreby rásť. Programovacie jazyky ako Java majú zbierky. Je to rámec so sadou tried a rozhraní. Slúži ako kontajner pre skupinu prvkov. Zbierky umožňujú ukladať, aktualizovať a načítať množinu prvkov. Pomáha pracovať s dátovými štruktúrami, ako sú zoznamy, množiny, stromy a mapy. Zoznam je rozhraním rámca Collection. ArrayList a LinkedList sú dve triedy v rámci kolekcií. Implementujú rozhranie pre zber a rozhranie pre zoznam. Tento článok pojednáva o rozdieloch medzi ArrayList a LinkedList. ArrayList je trieda, ktorá rozširuje AbstractList a implementuje rozhranie List, ktoré interne používa dynamické pole na ukladanie dátových prvkov. LinkedList je trieda, ktorá rozširuje AbstractSequentialList a implementuje rozhrania List, Deque a Queue, ktoré interne používajú dvojnásobne prepojený zoznam na ukladanie dátových prvkov. To je kľúčový rozdiel medzi ArrayList a LinkedList.
OBSAH
1. Prehľad a kľúčový rozdiel
2. Čo je ArrayList
3. Čo je LinkedList
4. Podobnosti medzi ArrayList a LinkedList
5. Porovnanie vedľa seba - ArrayList vs LinkedList v tabuľkovej forme
6. Zhrnutie
Čo je ArrayList?
Trieda ArrayList sa používa na vytváranie dynamických polí. Na rozdiel od bežného poľa nie je veľkosť dynamického poľa pevná. Objekt vytvorený pomocou triedy ArrayList má povolené ukladať skupinu prvkov do zoznamu. Kapacita sa zvyšuje automaticky, takže programátor môže do zoznamu pridávať prvky. Trieda ArrayList rozširuje triedu AbstractList, ktorá implementuje rozhranie List. Preto môže ArrayList použiť metódy rozhrania Zoznam. Na prístup k prvkom sa používa metóda get (). Na pridanie prvkov do zoznamu je možné použiť metódu add (). Metóda remove () sa používa na odstránenie prvku zo zoznamu. Pozrite si nižšie uvedený program.
Obrázok 01: Príklad súboru ArrayList
Podľa vyššie uvedeného programu sa vytvorí objekt ArrayList. Pomocou metódy pridania je možné prvky pridávať dynamicky. Prvky „A“, „B“, „C“, „D“a „E“sa pridávajú pomocou metódy pridania. Metóda remove sa používa na odstránenie prvku zo zoznamu. Pri zadávaní čísla 4 metódou odstránenia sa zo štvrtého indexu, ktoré je „E“, odstráni písmeno. Pri iterácii zoznamu pomocou slučky for sa vytlačia písmená A, B, C a D.
Čo je LinkedList?
Podobne ako v ArrayList, aj LinkedList sa používa na dynamické ukladanie dátových prvkov. Objekt vytvorený pomocou triedy LinkedList má povolené ukladať skupinu prvkov do zoznamu. Kapacita sa zvyšuje automaticky, takže programátor môže do zoznamu pridávať prvky. Na ukladanie údajov interne používa dvojnásobne prepojený zoznam. V dvojnásobne prepojenom zozname sú údaje uložené ako uzly. Každý uzol obsahuje dva odkazy. Prvý odkaz smeruje na predchádzajúci uzol. Nasledujúci odkaz smeruje na ďalší uzol v poradí.
Trieda LinkedList rozširuje triedu AbstractSequentialList a implementuje rozhranie List. Preto môže zoznam odkazov použiť metódy rozhrania zoznamu. Na prístup k prvkom zoznamu je možné použiť metódu get (). Na pridanie prvkov do zoznamu je možné použiť metódu add (). Metóda remove () sa používa na odstránenie prvku zo zoznamu. Pozrite si nižšie uvedený program.
Obrázok 02: Príklad s LinkedList
Podľa vyššie uvedeného programu sa vytvorí objekt LinkedList. Pomocou metódy pridania je možné prvky pridávať dynamicky. Prvky „A“, „B“, „C“, „D“a „E“sa pridávajú pomocou metódy pridania. Metóda remove sa používa na odstránenie prvku zo zoznamu. Pri zadávaní čísla 4 metódou odstránenia sa zo štvrtého indexu, ktorý je „E“, odstráni písmeno. Pri iterácii pomocou slučky for sa vytlačia písmená A, B, C a D.
Aké sú podobnosti medzi ArrayList a LinkedList?
- ArrayList aj LinkedList implementujú rozhranie List.
- ArrayList aj LinkedList môžu obsahovať duplicitné prvky.
- ArrayList aj LinkedList udržiavajú poradie vloženia.
Aký je rozdiel medzi ArrayList a LinkedList?
Rozdielny článok v strede pred tabuľkou
ArrayList vs LinkedList |
|
ArrayList je trieda, ktorá rozširuje AbstractList a implementuje rozhranie List, ktoré interne používa dynamické pole na ukladanie dátových prvkov. | LinkedList je trieda, ktorá rozširuje AbstractSequentialList a implementuje rozhrania List, Deque, Queue, ktorá interne používa dvojnásobne prepojený zoznam na ukladanie dátových prvkov. |
Prístup k prvkom | |
Prístup k prvkom ArrayList je rýchlejší ako k LinkedList. | Prístup k prvkom LinkedList je pomalší ako k ArrayList. |
Manipulácia s prvkami | |
Manipulácia s prvkami ArrayList je pomalšia ako s LinkedList. | Manipulácia s prvkami LinkedList je rýchlejšia ako s ArrayList. |
Správanie | |
ArrayList funguje ako zoznam. | LinkedList funguje ako zoznam a poradie. |
Zhrnutie - ArrayList vs LinkedList
Rámec zberu umožňuje prácu s dátovými štruktúrami, ako sú zoznamy, stromy, mapy a množiny. Zoznam je rozhraním rámca zberu. Tento článok pojednával o rozdieloch medzi ArrayList a LinkedList. ArrayList je trieda, ktorá rozširuje AbstractList a implementuje rozhranie List, ktoré interne používa dynamické pole na ukladanie dátových prvkov. LinkedList je trieda, ktorá rozširuje AbstractSequentialList a implementuje rozhrania List, Deque, Queue, ktorá interne používa dvojnásobne prepojený zoznam na ukladanie dátových prvkov. To je rozdiel medzi ArrayList a LinkedList.