Rozdíl mezi seznamem a sadou v Javě

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

Obsah


Rozhraní seznamu a sady rozšiřuje kolekce. Oba udržují sbírku prvků nebo objektů. Ale hlavní rozdíl, který je odlišuje od sebe navzájem, je Seznam uspořádaných prvků, prvky jsou přidávány nebo odebírány nebo zpřístupňovány pomocí indexové proměnné. Na druhou stranu je sada kolekce objektů, kde kolekce v ní neumožňuje duplicitní prvky. Podívejme se na další rozdíly mezi rozhraními Seznam a Set pomocí srovnávací tabulky 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íSeznam Soubor
ZákladníSeznam udržuje pořadí prvků uložených v seznamu.Sada zvlášť nezachovává pořadí vložení, ale propojené HashSet udržuje pořadí vložení.
ZdvojeníSeznam může obsahovat duplicitní prvky.Metoda add () vrací false, pokud se pokusíte vložit duplicitní prvky.
MetodySeznam kromě metod definovaných ve sbírce definuje některé ze svých vlastních metod.Sada nedefinuje žádnou další metodu.
Implementace Seznam je implementován pomocí ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Sada je implementována pomocí HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Definice seznamu

Rozhraní seznamu rozšiřuje rozhraní kolekce. Seznam je uspořádaná kolekce prvků nebo objektů. Na rozdíl od sady může seznam obsahovat duplicitní prvky. Kromě metod definovaných v Seznamu kolekce definuje některé své vlastní metody, jako je metoda get () a set () založená na indexu. Metody add () a remove () zděděné z kolekce, které přidává nebo odebírá určený prvek z indexu určeného v argumentu metody. Seznam je druh pole, jehož velikost roste, když přidáváme prvky do seznamu.

Seznam nedefinuje žádnou metodu pro práci s rozsahem indexů v seznamu. Definuje metodu sublist (), která vrací sublist z původního seznamu zadaného rozsahu. Změny, které provedete v sublistu, se také objeví v původním seznamu. Rozhraní seznamu je implementováno pomocí ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.


Definice sady

Nastavit rozhraní rozšiřuje rozhraní kolekce. Nastavené rozhraní je kolekce nebo skupina objektů, která v ní neobsahuje duplicitní objekt. To znamená, že dva odkazy nemohou odkazovat na jeden objekt nebo jeden odkaz nemůže odkazovat na dva objekty, nebo nemohou existovat dva odkazy odkazující na Null. Pořadí nebo posloupnost prvku není důležitá množina, ale není to tak, že zakazuje objednanou množinu.

Rozhraní sady nedefinuje kromě metody definované v kolekci žádnou metodu. Místo toho omezuje metody kolekce add () a addall () pro přidání jakéhokoli duplikovaného objektu do kolekce. Pokud se pokusíte přidat jakýkoli duplicitní objekt do kolekce pomocí metody add () kolekce, vrátí false. Jinak se vrátí pravda. Rozhraní sady je implementováno pomocí HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

  1. Posloupnost prvků / objektů v kolekci je udržována v seznamu, zatímco sada neudržuje pořadí prvků, ale existuje výjimka, kterou LinkHashSet udržuje pořadí vkládání.
  2. Seznam může mít duplicitní prvky, protože identifikuje jakýkoli prvek s jeho indexem, ale sada neumožňuje žádné duplicitní prvky, protože nemá žádný prvek typu indexu k identifikaci jakéhokoli objektu v kolekci.
  3. Seznam definuje některé metody samostatně, kromě metod definovaných ve sbírce. Na druhou stranu sada nedefinuje žádnou vlastní metodu, ale omezuje metody kolekce tak, aby přidávala duplicitní prvky.
  4. Seznam je implementován pomocí ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack interface. Na druhou stranu je sada implementována rozhraními HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

Závěr:

Použití rozhraní Seznam a Set závisí na požadavku. Pokud je pořadí objektů / prvků důležité, musíte použít rozhraní seznamu. Pokud ve své kolekci nevyžadujete duplicitní prvky, musíte použít rozhraní Set