Rozdiel medzi zoznamom a sadou v Jave

Autor: Laura McKinney
Dátum Stvorenia: 2 Apríl 2021
Dátum Aktualizácie: 15 Smieť 2024
Anonim
CS50 2015 - Week 2
Video: CS50 2015 - Week 2

Obsah


Rozhranie List and Set rozširuje kolekciu. Obaja udržiavajú zbierku prvkov alebo objektov. Hlavným rozdielom, ktorý ich od seba odlišuje, je zoznam. Zoznam je usporiadaný prvok, prvky sú pridané alebo odstránené alebo sprístupnené pomocou indexovej premennej. Na druhú stranu, Set je kolekcia objektov, kde kolekcia v nej neumožňuje duplicitné prvky. Pozrime sa na ďalšie rozdiely medzi rozhraniami Zoznam a Set pomocou porovnávacej tabuľky uvedenej nižšie.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnaniezoznam sada
základnéZoznam zachováva postupnosť prvkov uložených v zozname.Sada osobitne nezachováva poradie vkladania, ale služba Linked HashSet zachováva poradie vkladania.
zdvojenieZoznam môže obsahovať duplicitné prvky.Metóda add () sa vráti false, ak sa pokúsite vložiť duplicitné prvky.
metódyZoznam okrem metód definovaných v zbierke definuje aj niektoré svoje vlastné metódy.Sada nedefinuje žiadnu ďalšiu metódu.
uskutočnenie Zoznam je implementovaný pomocou ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Sada je implementovaná pomocou HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Definícia zoznamu

Rozhranie zoznamu rozširuje rozhranie zbierky. Zoznam je usporiadaná zbierka prvkov alebo objektov. Na rozdiel od sady môže zoznam obsahovať duplicitné prvky. Okrem metód definovaných v zozname kolekcií definuje niektoré svoje vlastné metódy, ako napríklad metódu get () a set () založenú na indexoch. Metódy add () a remove () zdedili zo zbierky, ktorá pridá alebo odstráni zadaný prvok z indexu zadaného v argumente metódy. Zoznam je druh poľa, ktorého veľkosť sa zvyšuje, keď do neho pridávame prvky.

Zoznam nedefinuje žiadnu metódu pôsobenia na rozsah indexov v zozname. Definuje metódu sublist (), ktorá vracia sublist z pôvodného zoznamu určeného rozsahu. Zmeny, ktoré urobíte v podnájme, sa objavia aj v pôvodnom zozname. Rozhranie zoznamu je implementované pomocou ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.


Definícia množiny

Set interface rozširuje rozhranie Collection. Nastavené rozhranie je kolekcia alebo skupina objektov, ktoré v nej neobsahujú duplicitné objekty. To znamená, že dva odkazy nemôžu odkazovať na jeden objekt alebo jeden odkaz nemôže odkazovať na dva objekty, alebo nemôžu existovať dva odkazy odkazujúce na Null. Poradie alebo postupnosť prvku nie je dôležitá množina, ale nie je to tak, že zakazuje usporiadanú množinu.

Rozhranie množiny nedefinuje žiadnu metódu okrem metódy definovanej v kolekcii. Namiesto toho obmedzuje metódy zhromažďovania add () a addall () na pridávanie akéhokoľvek duplikovaného objektu do kolekcie. Ak sa pokúsite pridať akýkoľvek duplicitný objekt do kolekcie pomocou metódy add () kolekcie, vráti hodnotu false. V opačnom prípade sa vráti pravda. Nastavené rozhranie je implementované pomocou HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

  1. Sekvencia prvkov / objektov v kolekcii je udržiavaná v zozname, zatiaľ čo množina neudržuje poradie prvkov, ale existuje výnimka LinkedHashSet, ktorá udržuje poradie vkladania.
  2. Zoznam môže mať duplicitné prvky, pretože identifikuje akýkoľvek prvok so svojím indexom, ale sada neumožňuje žiadne duplicitné prvky, pretože nemá žiadny prvok typu indexu na identifikáciu žiadneho objektu v kolekcii.
  3. Zoznam definuje niektoré metódy samostatne, okrem metód definovaných v zbierke. Na druhú stranu, Set nedefinuje žiadnu vlastnú metódu, ale obmedzuje metódy kolekcie na pridávanie akýchkoľvek duplicitných prvkov.
  4. Zoznam je implementovaný pomocou rozhraní ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Na druhej strane je Set implementovaný rozhraniami HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

záver:

Použitie rozhrania List and Set závisí od požiadavky. Ak je poradie objektov / prvkov dôležité, musíte použiť rozhranie zoznamu. Ak vo svojej zbierke nepotrebujete duplicitné prvky, musíte použiť rozhranie Set