Rozdíl mezi ArrayList a LinkedList

Obsah:

Rozdíl mezi ArrayList a LinkedList
Rozdíl mezi ArrayList a LinkedList

Video: Rozdíl mezi ArrayList a LinkedList

Video: Rozdíl mezi ArrayList a LinkedList
Video: LinkedList vs ArrayList in Java Tutorial - Which Should You Use? 2024, Listopad
Anonim

Klíčový rozdíl – ArrayList vs LinkedList

Sbírky 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 Java mají kolekce. Je to framework se sadou tříd a rozhraní. Slouží jako kontejner pro skupinu prvků. Kolekce umožňují ukládat, aktualizovat, získávat sadu prvků. Pomáhá pracovat s datovými strukturami, jako jsou seznamy, sady, stromy a mapy. Seznam je rozhraním Collection frameworku. ArrayList a LinkedList jsou dvě třídy v rámci kolekcí. Implementují sběrné rozhraní a rozhraní Seznam. 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 AbstractSequentialList a implementuje rozhraní List, Deque a Queue, která interně používají k ukládání datových prvků dvojitě propojený seznam. To je klíčový rozdíl mezi ArrayList a LinkedList.

Co je ArrayList?

Třída ArrayList se používá k vytváření dynamických polí. Na rozdíl od normálního pole není velikost dynamického pole pevná. Objekt vytvořený pomocí třídy ArrayList může uložit sadu prvků v seznamu. Kapacita se zvyšuje automaticky, takže programátor může přidávat prvky do seznamu. Třída ArrayList rozšiřuje třídu AbstractList, která implementuje rozhraní List. Proto může ArrayList používat metody rozhraní List. Pro přístup k prvkům se používá metoda get(). K přidání prvků do seznamu lze použít metodu add(). Metoda remove() se používá k odstranění prvku ze seznamu. Viz níže uvedený program.

Rozdíl mezi ArrayList a LinkedList
Rozdíl mezi ArrayList a LinkedList
Rozdíl mezi ArrayList a LinkedList
Rozdíl mezi ArrayList a LinkedList

Obrázek 01: Příklad ArrayList

Podle výše uvedeného programu je vytvořen objekt ArrayList. Pomocí metody add lze prvky přidávat dynamicky. Prvky „A“, „B“, „C“, „D“a „E“se přidávají pomocí metody sčítání. Metoda remove se používá k odstranění prvku ze seznamu. Při předání 4 do metody odstranění je písmeno ve 4. indexu, které je „E“, odstraněno ze seznamu. Při iteraci seznamu pomocí cyklu for se vytisknou písmena A, B, C a D.

Co je LinkedList?

Podobně jako ArrayList se LinkedList používá k dynamickému ukládání datových prvků. Objekt vytvořený pomocí třídy LinkedList může uložit sadu prvků v seznamu. Kapacita se zvyšuje automaticky, takže programátor může přidávat 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 pořadí.

Třída LinkedList rozšiřuje třídu AbstractSequentialList a implementuje rozhraní List. Proto může LinkedList používat metody rozhraní Seznam. Pro přístup k prvkům seznamu lze použít metodu get(). K přidání prvků do seznamu lze použít metodu add(). Metoda remove() se používá k odstranění prvku ze seznamu. Viz níže uvedený program.

Klíčový rozdíl mezi ArrayList a LinkedList
Klíčový rozdíl mezi ArrayList a LinkedList
Klíčový rozdíl mezi ArrayList a LinkedList
Klíčový rozdíl mezi ArrayList a LinkedList

Obrázek 02: Příklad s LinkedList

Podle výše uvedeného programu je vytvořen objekt LinkedList. Pomocí metody add lze prvky přidávat dynamicky. Prvky „A“, „B“, „C“, „D“a „E“se přidávají pomocí metody sčítání. Metoda remove se používá k odstranění prvku ze seznamu. Při předání 4 do metody odstranění se ze seznamu odstraní písmeno ve 4. indexu, které je „E“. Při iteraci pomocí cyklu for se vytisknou písmena A, B, C a D.

Jaké jsou podobnosti mezi ArrayList a LinkedList?

  • Rozhraní seznamu implementují ArrayList i LinkedList.
  • ArrayList i LinkedList mohou obsahovat duplicitní prvky.
  • ArrayList i LinkedList udržují objednávku vložení.

Jaký je rozdíl mezi ArrayList a LinkedList?

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 AbstractSequentialList a implementuje rozhraní List, Deque, Queue, která interně používá k ukládání datových prvků dvojitě propojený seznam.
Přístup k prvkům
Přístup k prvkům ArrayList je rychlejší než u LinkedList. Přístup k prvkům LinkedList je pomalejší než k ArrayList.
Manipulační prvky
Manipulace s prvky ArrayList je pomalejší než s LinkedList. Manipulace s prvky LinkedList je rychlejší než s ArrayList.
Chování
ArrayList funguje jako seznam. LinkedList funguje jako seznam a fronta.

Shrnutí – ArrayList vs LinkedList

Sběrný rámec umožňuje práci s datovými strukturami, jako jsou seznamy, stromy, mapy a sady. Seznam je rozhraním rámce kolekce. Tento článek pojednával o rozdílu 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 AbstractSequentialList a implementuje rozhraní List, Deque, Queue, která interně používá k ukládání datových prvků dvojitě propojený seznam. To je rozdíl mezi ArrayList a LinkedList.

Doporučuje: