Rozdiel medzi sadou a zoznamom

Rozdiel medzi zoznamom polí a prepojeným zoznamom

Skôr ako sa dostaneme k skutočným rozdielom, dajte nám vedieť, čo v skutočnosti sú?

Čo je to súprava?

Narazili sme na pojem Set v matematike a Set tu viac menej znamená to isté. Áno, je to zbierka prvkov a vo väčšine prípadov zbierka podobných prvkov. Môžete skúsiť pridať tieto prvky do sady a skúsiť tlačiť, aby ste pochopili, ako sa skutočne ukladajú.

Vstup do sady: 20, 50, 10, 30.

Je to skutočne uložené v Set as 10, 20, 30, 50.

Prvky sú tu usporiadané a neukladajú sa v poradí, v akom boli vložené. Toto je jedna z vlastností množiny, že prvky pred uložením vždy triedi, a samozrejme, existujú výnimky a jednou z nich je LinkedhashSet, pretože zachováva poradie vkladania prvkov.

Z hľadiska počítačov sada obsahuje niekoľko ďalších vlastností, ako sú napríklad metódy a dedičnosť. Metódy sú rovnako ako funkcie a vykonávajú určité úlohy, ako napríklad pridávanie, odstraňovanie alebo opakovanie súboru prvkov. Väčšina z nás je dobre známa pod pojmom Dedičnosť, čo v tomto prípade znamená to isté. Áno, môžeme zdediť metódu zo svojej zbierky, takže ju možno použiť s nastaveným rozhraním. Opäť hovoríme o novom termíne, t. J. O Set Interface, a nie je to nič iné ako celá sada prvkov vrátane metód.

Ako ju implementovať?

Pre lepšie pochopenie sme reprezentovali množinu s jej syntaxou. Z nižšie uvedenej syntaxe môžete identifikovať rôzne typy množín, napríklad HashSet a TreeSet.

importovať java.util. *;

verejná trieda Setexample

verejné statické prázdno (String args [])

int počet [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Set set = new HashSet ();

vyskúšať

pre (int i = 0; i < 5; i++)

set.add (počet [i]);

System.out.println (súprava);

TreeSet sortSeteg = nový TreeSet (set);

System.out.println („Tu máme usporiadaný výstup:“);

System.out.println (sortedSeteg);

System.out.println („Pozrite sa na prvý prvok:“ + (celé číslo) sortSet.first ());

System.out.println (“Pozrite sa na posledný prvok:„ + (celé číslo) sortSet.last ());

úlovok (výnimka e)

Výstup vyššie uvedeného kódu je nasledujúci.

[25, 17, 76, 12, 88]
Tu máme triedený výstup:
[12, 17, 25, 76, 88]
Pozrite sa na prvý prvok: 12
Pozrite sa na posledný prvok: 88

Čo je zoznam?

Zoznam rozširuje kolekciu podobnú tomu, ako sada urobila, ale zachováva poradie vkladania. Pokúsite sa pridať nasledujúce názvy do zoznamu a zistiť, ako sa do nich pridáva.

Vstup do zoznamu: John, Nancy, Mary, Alice.

Ako je uložený v zozname: John, Nancy, Mary, Alice.

Stačí si všimnúť poradie, v ktorom sú vložené. Môžete zistiť, že „John“ je prvým prvkom na vstupe aj na výstupe a za ním nasleduje rovnaké poradie, v akom sa vkladajú názvy. Môžeme to dokonca považovať za jednu z hlavných vlastností Listu.

Ako ju implementovať?

Pozrime sa na niektoré z metód zoznamu, ako sú ArrayList a LinkedList, v syntaxi uvedenej nižšie.

importovať java.util. *;
zbierka verejnej triedy

public static void main (String [] args)

Zoznam a1 = nový ArrayList ();
a1.add ( "John");
a1.add ( "Nancy");
a1.add ( "Mary");
a1.add ( "Alice");
System.out.println („Prvky zoznamu polí sú“);
System.out.print („\ t“ + a1);

Zoznam 11 = nový LinkedList ();
l1.add ( "Silvia");
l1.add ( "Arjun");
l1.add ( "Deepika");
l1.add ( "Susan");
System.out.println ();
System.out.println („Prvky prepojeného zoznamu sú“);
System.out.print („\ t“ + l1);

Výstup vyššie uvedenej syntaxe je nasledujúci.

Prvky zoznamu polí sú

[John, Nancy, Mary, Alice]

Prepojené prvky zoznamu

[Silvia, Arjun, Deepika, Susan]

Z vyššie uvedeného kódu je veľmi zrejmé, že ArrayList aj LinkedList udržujú poradie vkladania.

Ako sa líšia?

  • Metódy a popisy:

Súbor a zoznam má svoje vlastné metódy a pozrime sa na niektoré z nich tu.

S.No Metódy množín Zoznam - metódy
1. pridať () - Je to pridávanie objektov do kolekcie. void add (int index, Object obj) - Pridá objekt „obj“ do určeného „indexu“ zoznamu vyvolávajúcich sa a zaistením, že žiadny prvok nebude prepísaný presunutím predchádzajúcich prvkov.
2. jasný() - Je to odstránenie predmetov zo zbierky. boolean addAll (index int, zbierka c) - Pridá celú kolekciu „c“ do vyvolávacieho zoznamu a do zadaného „indexu“. Zabezpečuje tiež to, aby neboli prepísané žiadne prvky. Kontrolu návratnosti môžeme tiež skontrolovať správnosť jej fungovania. Ak je zmena úspešná, vráti hodnotu „true“, vráti hodnotu „false“.
3. obsahuje () - Je to kontrola, či sada obsahuje určitý objekt. Ak je objekt v množine, vráti hodnotu „true“. Objekt get (int index) - Vracia prvok alebo objekt v zadanom indexe..
4. je prázdny() - Má zistiť, či zbierka pomáha, pretože neobsahuje žiadne prvky. Ak neexistuje žiadny prvok, vráti hodnotu „true“. int lastIndexOf (Object obj) - Funguje to podobne ako naspäť indexOf () Metóda. Vracia posledný výskyt zadaného objektu 'obj' a vráti sa hodnota '1', ak v zozname žiadny taký objekt neexistuje. Môže sa preto používať aj ako obsahuje () Metóda nastaveného rozhrania.
6. odstrániť () - Ide o odstránenie prvku z kolekcie zadaním ako parametra metódy. ListIterator listIterator () - Vracia iterátor do počiatočného indexu zoznamu.
7. size () - Je to spočítať počet objektov alebo prvkov, ktoré má kolekcia. ListIterator listIterator (int index) - Pomáha pri opakovaní zoznamu vyvolávajúcich zoznam začínajúci zadaným indexom..
8. - Odstránenie objektu (index int) - Odstráni objekt na zadanom indexe a ako výsledok vráti odstránený prvok. Tiež znižuje výsledné zoznamy indexov, aby odrážali vymazanie.
9. - Sada objektov (int index, Object obj) - Je to priradenie objektu 'obj' k vyvolávaciemu zoznamu pri určenom indexe..
10. - Zoznam podzoznamov (int začiatok, int koniec) - Je to zahrnúť objekty od indexu 'start' po index 'end' v zozname, ktorý vyvolal metódu.
  • Údržba objednávok:

Sada nikdy neudržiava poradie prvkov, v ktorých sú vložené, zatiaľ čo zoznam ich zachováva. Pre LinkedHashSet existuje výnimka z tohto pravidla, pretože zachováva poradie vkladania, ale druhá sada, napríklad HashSet a TreeSet, triedi prvky pred uložením. To isté je opísané v príkladoch nižšie.

sada Vstup: mačka, bábika, Apple.

Uložené ako: Apple, Cat, Doll.

Zadanie zoznamu: Cat, Doll, Apple.

Uložené ako: Cat, Doll, Apple.

  • Prítomnosť duplikátov:

Súbor nikdy nepovoľuje duplikáty, zatiaľ čo zoznam to umožňuje. Ak je potrebné do zoznamu pridať duplikátnu hodnotu, prepíše sa. Prezrite si ukážky duplikátov množín a zoznamov.

Vstup vstupu: 10, 20, 20, 50.

Uložené ako: 10, 20, 50.

Vstup do zoznamu: 10, 20, 20, 50.

Uložené ako: 10, 20, 20, 50.

  • Nulové hodnoty:

Súbor môže mať iba jednu nulovú hodnotu, zatiaľ čo zoznam môže mať viac ako jednu nulovú hodnotu a nie je obmedzený na žiadne číslo.

Zadanie vstupu: null, null, Man, Dog, Plane.

Uložené ako: null, pes, muž, lietadlo.

Zadanie zoznamu: null, null, Man, Dog, Plane.

Uložené ako: null, null, Man, Dog, Plane.

  • Použitie aplikácie Iterator a ListIterator:

Metóda Iterator funguje dobre s Set aj List, zatiaľ čo metóda ListIterator funguje iba so List. ListIterator sa dá použiť na listovanie vpred aj vzad.

  • Prítomnosť triedy Legacy:

Sada nemá starú triedu, zatiaľ čo rozhranie zoznamu má odkaz nazývaný „vektor“. Vektor používa rozhranie zoznamu, a preto zachováva poradie vkladania. Z dôvodu synchronizačného úsilia je výkon vektora pri dodatkoch, odstráneniach a aktualizáciách trochu pomalší.

  • implementácie:

Niekoľko implementácií sady je HashSet, LinkedHashSet a TreeSet. Len málo implementácií zoznamu obsahuje ArrayList a LinkedList.

Kedy použiť Set & List?

Použitie sady a zoznamu je čisto závislé od požiadavky na údržbu objednávky vloženia. Pretože sme sa dozvedeli, že množina nikdy neudržiava poradie vkladania, môže sa použiť, keď je poradie menej dôležité. Podobným spôsobom použite zoznam, ak potrebujete zachovať aj postupnosť vkladania.

Rozdiely v tabuľkovej forme:

S.No Rozdiely v% sada zoznam
1. Objednávka vloženia Zachováva poradie vkladania. Prvý vložený zostáva na prvom mieste a tak nezávisle od jeho hodnoty. Nikdy neuchováva poradie vkladania.
2. metódy Používa metódy ako add (), clear (), obsahuje (), isEmpty (), remove () a size (). Používa metódy ako add (), addAll (), get (), lastIndexOf (), ListIterator () s parametrom alebo bez parametra, remove (), set () a subList ().
3. duplikáty Nikdy nedovoľuje duplikáty av prípade takýchto javov sa hodnota prepíše. Umožňuje duplikáty.
4. Nulové hodnoty Môže mať iba jednu nulovú hodnotu. Môže mať ľubovoľný počet nulových hodnôt.
5. Použitie Iterator () & listIterator () Používa iba metódu iterátor (). Používa iterátor () aj zoznamIterator ().
6. Prítomnosť starej triedy Neexistuje žiadna trieda Legacy. Má ako starú triedu nazývanú vektor.
7. implementácia Málo implementácií rozhrania Set je HashSet, LinkedHashSet a Tree Set. Len málo implementácií rozhrania List je LinkList a ArrayList.

Dúfam, že sme zahrnuli všetky možné rozdiely medzi súpravou a zoznamom. Ak máte pocit, že nám niečo uniklo, dajte nám vedieť.