Doporučená, 2024

Redakce Choice

Rozdíl mezi seznamem a ArrayList v Javě

Seznam a ArrayList jsou členy rámce kolekce. Seznam je soubor prvků v posloupnosti, kde každý prvek je objekt a prvky jsou přístupné tam pozicí (index). ArrayList vytvoří dynamické pole objektů, které se zvětší nebo sníží velikost, kdykoliv to bude potřeba. Primární rozdíl mezi List a ArrayList je, že seznam je rozhraní a ArrayList je třída. Studujme rozdíl mezi Listem a ArrayListem pomocí srovnávací tabulky uvedené níže.

Srovnávací graf

Základ pro porovnáníSeznamArrayList
ZákladníSeznam je rozhraníArrayList je standardní třídou kolekce.
SyntaxSeznam rozhranítřída ArrayList
Rozšíření / implementaceRozhraní seznamu rozšiřuje rámec kolekce.ArrayList rozšiřuje AbstractList a implementuje seznamové rozhraní.
Jmenný prostorSystem.Collections.Generic.System.Collections.
PrácePoužívá se k vytvoření seznamu prvků (objektů), které jsou přiřazeny jejich indexovým číslům.ArrayList se používá k vytvoření dynamického pole, které obsahuje objekty.

Definice seznamu

Seznam je rozhraní, které rozšiřuje rámec kolekce . Rozhraní seznamu popisuje sbírku prvků, které jsou uspořádány postupně. Rozhraní seznamu je implementováno následujícími standardními třídami kolekce jako ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . Rozhraní seznamu obsahuje prvky, které jsou spojeny s jejich indexovými čísly. K prvku v seznamu můžete přistupovat podle jeho pozice (indexu) v seznamu. Seznam vytvořený pomocí rozhraní Seznam začíná s nulovým indexem.

Kromě metod zděděných sbírkovým rámcem definuje seznam rozhraní také vlastní metodu. Metody přidané rozhraním List jsou: add (int, E) a addAll (int, Collection) . Tyto metody přidávají prvek do seznamu podle svého indexu. Metody uvnitř seznamu mohou vyvolat výjimku, jako je například UnsupportedOperationException, pokud metoda nemůže seznam změnit. Když jeden objekt v seznamu je nekompatibilní s jiným objektem v seznamu, pak ClassCastException je thrown.Null prvky nejsou povoleny v seznamu, pokud se pokusíte vložit null objekt do seznamu, NullPointerException je vyvolána.

Element ze seznamu můžete získat metodou get () . Hodnotu prvku v seznamu můžete nastavit pomocí metody set () . Seznam můžete také získat ze seznamu pomocí dílčího seznamu metod () . Je vhodné pracovat s podřízeným seznamem místo seznamu.

Definice ArrayList

Jednou ze standardních tříd kolekce je ArrayList, který rozšiřuje třídu AbstractList a také implementuje rozhraní List . Třída ArrayList se používá k vytvoření dynamických polí, která rostou a zmenšují se vždy, když je požadována. Seznam vytvořený pomocí třídy ArrayList není nic jiného než pole objektů. V jazyce Java má standardní pole pevnou délku, takže musíte předem znát velikost pole. Může se však stát, že nebudete vědět, jakou délku pole potřebujete do doby spuštění. Rámec kolekce proto zavedl třídu ArrayList k překonání tohoto problému.

ArrayList má konstruktory, které vytvářejí pole s jeho vnitřní kapacitou. Ačkoli se kapacita objektu třídy ArrayList zvyšuje automaticky, když jsou prvky přidány do pole, přesto můžete ručně zvýšit kapacitu objektu ArrayList pomocí metody removeCapacity () . Je lepší zvýšit kapacitu pole zpočátku místo přerozdělení paměti později. Protože přerozdělení je nákladnější než přidělení paměti najednou.

Klíčové rozdíly mezi seznamem a seznamem

  1. Jedním z nejdůležitějších rozdílů mezi Listem a ArrayListem je, že seznam je rozhraní a ArrayList je standardní třídou Collection.
  2. Rozhraní seznamu rozšiřuje rámec kolekce, zatímco ArrayList rozšiřuje třídu AbstractList a implementuje rozhraní seznamu .
  3. Obor názvů pro rozhraní Seznam je System.Collection.Generic vzhledem k tomu, že obor názvů pro ArrayList je System.Collection .
  4. Rozhraní seznamu vytvoří soubor prvků, které jsou uloženy v sekvenci a jsou identifikovány nebo zpřístupněny jejich indexovým číslem. Na druhé straně ArrayList vytvoří pole objektů, kde může pole dynamicky růst, když je to požadováno.

Závěr:

ArrayList překonává problém statického pole ve standardní Javě, tj. Pole nemůže růst, jakmile je vytvořeno. Když je pole vytvořeno pomocí ArrayList, vytvoří se dynamické pole, které může v případě potřeby růst a zmenšit velikost. Standardní třída ArrayList rozšiřuje rozhraní seznamu.

Top