Rozdíl mezi seznamem a seznamem polí v Javě

Autor: Laura McKinney
Datum Vytvoření: 2 Duben 2021
Datum Aktualizace: 8 Smět 2024
Anonim
Rozdíl mezi seznamem a seznamem polí v Javě - Technologie
Rozdíl mezi seznamem a seznamem polí v Javě - Technologie

Obsah


Seznam a ArrayList jsou členy rámce Collection. Seznam je kolekce prvků v posloupnosti, kde každý prvek je objektem a prvky jsou přístupné podle pozice (indexu). ArrayList vytváří dynamické pole objektů, které se v případě potřeby zvětšuje nebo zmenšuje. Primární rozdíl mezi seznamem a seznamem polí je ten Seznam je rozhraní a ArrayList je třída. Podívejme se na rozdíl mezi seznamem a seznamem polí pomocí srovnávacího grafu uvedeného níže.

  1. Srovnávací tabulka
  2. Definice
  3. Klíčové rozdíly
  4. Závěr

Srovnávací tabulka

Základ pro srovnáníSeznamArrayList
ZákladníSeznam je rozhraníArrayList je standardní kolekce Class.
SyntaxSeznam rozhranítřída ArrayList
Rozšířit / implementovatRozhraní seznamu rozšiřuje rámec kolekce.ArrayList rozšiřuje AbstractList a implementuje rozhraní seznamu.
Jmenný prostorSystem.Collections.Generic.System.Collections.
PráceSlouží k vytvoření seznamu prvků (objektů), které jsou spojeny s jejich indexovými čísly.ArrayList se používá k vytvoření dynamického pole, které obsahuje objekty.


Definice seznamu

Seznam je rozhraní který rozšiřuje Sbírka rámec. 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í seznamu začíná indexem založeným na nule.

Rozhraní seznamu kromě metod zděděných rámcem kolekce také definuje vlastní metodu. Metody přidané rozhraním seznamu jsou: add (int, E) a addAll (int, Collection). Tyto metody přidají prvek do seznamu podle jejich indexu. Metody uvnitř seznamu mohou vyvolat výjimku typu Nepodporovaná výjimka pokud metoda není schopna seznam upravit. Pokud je jeden objekt v seznamu nekompatibilní s jiným objektem v seznamu, pak ClassCastException je vyvolána.Null prvky nejsou v seznamu povoleny, pokud se pokusíte vložit nulový objekt do seznamu, NullPointerException je hozen.


Element můžete získat ze seznamu pomocí dostat() metoda. Hodnotu prvku v seznamu můžete nastavit pomocí soubor() metoda. Sublist můžete také získat ze seznamu pomocí metody sublist (). Je účelné pracovat se sublistou namísto seznamu.

Definice ArrayList

Jednou ze standardních tříd kolekce je ArrayList, který se rozšiřuje AbstractList třídy a také implementuje Seznam rozhraní. Třída ArrayList se používá k vytváření dynamických polí, která rostou a zmenšují se, kdykoli je to třeba. Seznam vytvořený pomocí třídy ArrayList není nic jiného než pole objektů. V Javě má ​​standardní pole pevnou délku, takže musíte znát velikost pole předem. Může se však stát, že nebudete vědět, jakou délku pole potřebujete do doby běhu. Proto rámec Collection představil třídu ArrayList, aby tento problém překonal.

ArrayList má konstruktory, které vytvářejí pole se svou počáteční kapacitou. Přestože kapacita objektu třídy ArrayList se automaticky zvyšuje, když jsou prvky přidány do pole, stále můžete manuálně zvýšit kapacitu objektu ArrayList pomocí metody zajistitKapacitu (). Je lepší zvýšit kapacitu pole zpočátku namísto přerozdělení paměti později. Protože přerozdělení je nákladnější než přidělení paměti najednou.

  1. Jedním z nejdůležitějších rozdílů mezi List a ArrayList je, že seznam je rozhraní a ArrayList je standardní kolekce třída.
  2. Rozhraní seznamu rozšiřuje Sbírka framework, zatímco ArrayList se rozšiřuje AbstractList Třída a implementuje se Seznam rozhraní.
  3. Rozhraní oboru názvů pro seznam je System.Collection.Generic zatímco obor názvů pro ArrayList je System.Collection.
  4. Rozhraní seznamu vytváří kolekci prvků, které jsou uloženy v sekvenci a jsou identifikovány nebo přístupné podle jejich indexového čísla. Na druhé straně ArrayList vytváří pole objektů, kde může pole podle potřeby dynamicky růst.

Závěr:

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