Rozdíl mezi seznamem polí a propojeným seznamem

Key Difference - ArrayList vs Spojový seznam
 

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.

OBSAH

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í

Co je ArrayList?

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.

Co je LinkedList?

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.

Jaké jsou podobnosti mezi poli ArrayList a LinkedList?

  • ArrayList i LinkedList implementují rozhraní List.
  • ArrayList i LinkedList mohou obsahovat duplicitní prvky.
  • ArrayList i LinkedList udržují pořadí vkládání.

Jaký je rozdíl mezi ArrayListem a LinkedListem??

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.

souhrn - ArrayList vs Spojový seznam

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.

Odkaz:

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