Kolekce jsou užitečné pro ukládání dat. V normálním poli je velikost pole pevná. Někdy je nutné vytvořit pole, která mohou růst podle potřeby. Programovací jazyky, jako je Java, mají sbírky. Je to rámec se sadou tříd a rozhraní. Slouží jako kontejner pro skupinu prvků. Kolekce umožňují ukládat, aktualizovat a načítat sadu prvků. Pomáhá pracovat s datovými strukturami, jako jsou seznamy, sady, stromy a mapy. Seznam je rozhraním kolekce Framework. ArrayList a LinkedList jsou dvě třídy v rámci kolekce. Implementují rozhraní kolekce a rozhraní seznamu. Tento článek popisuje rozdíl mezi ArrayList a LinkedList. ArrayList je třída, která rozšiřuje AbstractList a implementuje rozhraní List, které interně používá dynamické pole k ukládání datových prvků. LinkedList je třída, která rozšiřuje rozhraní AbstractSequentialList a implementuje rozhraní List, Deque a Queue, které interně používají dvojitě propojený seznam k ukládání datových prvků.. Toto je klíčový rozdíl mezi ArrayList a LinkedList.
1. Přehled a klíčový rozdíl
2. Co je ArrayList
3. Co je LinkedList
4. Podobnosti mezi seznamem polí a seznamem odkazů
5. Porovnání vedle sebe - ArrayList vs LinkedList v tabulkové formě
6. Shrnutí
Třída ArrayList se používá k vytváření dynamických polí. Na rozdíl od běžného pole není velikost dynamického pole pevná. Objekt vytvořený pomocí třídy ArrayList smí ukládat sadu prvků do seznamu. Kapacita se zvyšuje automaticky, takže programátor může přidat prvky do seznamu. Třída ArrayList rozšiřuje třídu AbstractList, která implementuje rozhraní List. Proto metody ArrayListu mohou používat metody rozhraní List. Pro přístup k prvkům se používá metoda get (). Metodu add () lze použít k přidání prvků do seznamu. Metoda remove () se používá k odebrání prvku ze seznamu. Viz níže uvedený program.
Obrázek 01: Příklad seznamu polí
Podle výše uvedeného programu je vytvořen objekt ArrayList. Pomocí metody přidání lze prvky přidat dynamicky. Prvky „A“, „B“, „C“, „D“ a „E“ se přidají pomocí metody přidání. Metoda remove se používá k odebrání prvku ze seznamu. Při předávání 4 metodě odebrání se písmeno ze 4. indexu, které je „E“, odstraní ze seznamu. Při opakování seznamu pomocí smyčky for se vytisknou písmena A, B, C a D.
Podobně jako ArrayList se propojený seznam používá k dynamickému ukládání datových prvků. Objekt vytvořený pomocí třídy LinkedList smí ukládat sadu prvků do seznamu. Kapacita se zvyšuje automaticky, takže programátor může přidat prvky do seznamu. Interně používá k ukládání dat dvojitě propojený seznam. Ve dvojitě propojeném seznamu jsou data uložena jako uzly. Každý uzel obsahuje dva odkazy. První odkaz ukazuje na předchozí uzel. Další odkaz ukazuje na další uzel v sekvenci.
Třída LinkedList rozšiřuje třídu AbstractSequentialList a implementuje rozhraní List. Metody rozhraní List lze proto použít v propojeném seznamu. Metodu get () lze použít k přístupu k prvkům seznamu. Metodu add () lze použít k přidání prvků do seznamu. Metoda remove () se používá k odebrání prvku ze seznamu. Viz níže uvedený program.
Obrázek 02: Příklad s LinkedList
Podle výše uvedeného programu se vytvoří objekt propojeného seznamu. Pomocí metody přidání lze prvky přidat dynamicky. Prvky „A“, „B“, „C“, „D“ a „E“ se přidají pomocí metody přidání. Metoda remove se používá k odebrání prvku ze seznamu. Při předávání 4 metodě odebrání se písmeno ze 4. indexu, které je „E“, odstraní ze seznamu. Při iteraci pomocí smyčky for se vytisknou písmena A, B, C a D.
ArrayList vs LinkedList | |
ArrayList je třída, která rozšiřuje AbstractList a implementuje rozhraní List, které interně používá dynamické pole k ukládání datových prvků. | LinkedList je třída, která rozšiřuje rozhraní AbstractSequentialList a implementuje rozhraní List, Deque, Queue, které interně používá k ukládání datových prvků interně dvojitý seznam.. |
Přístup k prvkům | |
Přístup k prvkům ArrayList je rychlejší než u LinkedList. | Přístup k prvkům propojeného seznamu je pomalejší než u seznamu polí. |
Manipulační prvky | |
Manipulace s elementy ArrayList je pomalejší než s LinkList. | Manipulace s prvky LinkList je rychlejší než ArrayList. |
Chování | |
ArrayList funguje jako seznam. | LinkedList funguje jako seznam a fronta. |
Rámec kolekce umožňuje práci s datovými strukturami, jako jsou seznamy, stromy, mapy a sady. Seznam je rozhraním sběrného rámce. Tento článek popisuje rozdíl mezi ArrayList a LinkedList. ArrayList je třída, která rozšiřuje AbstractList a implementuje rozhraní List, které interně používá dynamické pole k ukládání datových prvků. LinkedList je třída, která rozšiřuje rozhraní AbstractSequentialList a implementuje rozhraní List, Deque, Queue, které interně používá k ukládání datových prvků interně dvojitý seznam. To je rozdíl mezi ArrayListem a LinkedListem.
1.Úvod do propojeného seznamu | Výukový program pro strukturu dat Studytonight. K dispozici zde
2. „LinkedList in Java - javatpoint.“, The Point, Available here
3. „Třída Java ArrayList - javatpoint.“ The Point, k dispozici zde