Razlika med Set in List

Razlika med seznamom matic in povezanim seznamom

Preden se spopademo z dejanskimi razlikami, spoznajmo, kakšne so v resnici?

Kaj je komplet?

Pri matematiki smo naleteli na koncept Set in Set tukaj bolj ali manj pomeni isto. Da, gre za zbirko elementov in v večini primerov zbirko podobnih elementov. Poskusite dodati te elemente v Set in poskusiti s tiskanjem razumeti, kako je dejansko shranjen.

Vnos v niz: 20, 50, 10, 30.

Dejansko je shranjeno v Set as 10, 20, 30, 50.

Elementi so tukaj razvrščeni in shranjeni ne v vrstnem redu vstavljanja. To je ena od lastnosti Set-a, da vedno razvrsti elemente pred shranjevanjem, seveda pa obstajajo izjeme in ena takih je LinkedhashSet, saj vzdržuje vrstni red vstavljanja elementov.

V računalniškem smislu Set vsebuje malo dodatnih lastnosti, kot so Metode in Dedovanje. Metode so tako kot funkcije in opravljajo določene naloge, kot so dodajanje, odstranjevanje ali ponavljanje skozi nabor elementov. Večina od nas je dobro znana pojem dedovanje in tukaj pomeni isto. Da, lahko metodo podedujemo iz njegove zbirke, tako da jo lahko uporabimo z nastavljenim vmesnikom. Spet govorimo o novem izrazu, tj. Nastavljenem vmesniku, in ni nič drugega kot celoten nabor elementov, vključno z metodami.

Kako to izvesti?

Samo za boljše razumevanje smo predstavili nabor s svojo sintakso. Iz spodnje sintakse lahko prepoznate različne vrste Setov, kot sta HashSet in TreeSet.

uvoz java.util. *;

javni razred Setexample

javni statični void main (String args [])

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

Set set = nov HashSet ();

poskusi

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

set.add (štetje [i]);

System.out.println (set);

TreeSet sortedSeteg = nov TreeSet (set);

System.out.println ("Tu imamo razvrščen izhod:");

System.out.println (sortedSeteg);

System.out.println ("Poglejte prvi element:" + (Integer) sortedSet.first ());

System.out.println ("Poglejte zadnji element:" + (Integer) sortedSet.last ());

ulov (izjema e)

Izhod zgornje kode je naslednji.

[25, 17, 76, 12, 88]
Tu imamo razvrščen izhod:
[12, 17, 25, 76, 88]
Poglejte prvi element: 12
Poglejte zadnji element: 88

Kaj je seznam?

Seznam razširja zbirko podobno kot je naredil Set, vendar ohranja vrstni red vstavljanja. Na seznam poskusite dodati naslednja imena in si oglejte, kako je dodan.

Vnos v seznam: John, Nancy, Mary, Alice.

Kako je shranjen na seznamu: John, Nancy, Mary, Alice.

Samo opazite vrstni red, v katerem so vstavljeni. Lahko prepoznate, da je "John" prvi element v vhodu in izhodu, sledi pa mu enak vrstni red, v katerem so vstavljena imena. To lahko celo smatramo za eno glavnih lastnosti Liste.

Kako to izvesti?

Oglejmo si nekaj spodnjih metod, kot sta ArrayList in LinkedList, v spodnji sintaksi.

uvoz java.util. *;
Primer zbirke javnega razreda

javni statični void main (String [] args)

Seznam a1 = nov ArrayList ();
a1.add ("John");
a1.add ("Nancy");
a1.add („Marija“);
a1.add ("Alica");
System.out.println ("Elementi ArrayList so");
System.out.print ("\ t" + a1);

Seznam l1 = nov LinkedList ();
l1.add ("Silvia");
l1.add ("Arjun");
l1.add ("Deepika");
l1.add (»Susan«);
System.out.println ();
System.out.println ("Elementi povezanih seznamov so");
System.out.print ("\ t" + l1);

Izhod zgornje skladnje je naslednji.

Elementi ArrayList so

[John, Nancy, Mary, Alice]

Elementi povezanega seznama

[Silvia, Arjun, Deepika, Susan]

Iz zgornje kode je jasno razvidno, da tako ArrayList kot LinkedList vzdržujeta vrstni red vstavljanja.

Kako se razlikujejo?

  • Metode in opisi:

Set in seznam ima svoje metode in tukaj si oglejmo nekaj njih.

S. št Set - metode Seznam - metode
1. dodaj () - To je dodajanje predmetov v zbirko. neveljaven dodaj (int indeks, objekt obj) - Predmet doda ob'j na navedeni 'indeks' seznama, ki prikliče, in s premikom prejšnjih elementov poskrbi, da noben element ne bo prepisan.
2. jasno () - To je odstranitev predmetov iz zbirke. boolean addAll (int indeks, zbirka c) - Celotno zbirko 'c' doda na seznam, ki se sklicuje, in na naveden 'indeks'. Prav tako zagotavlja, da noben element ni prepisan. Pravilnost njegovega delovanja lahko preverimo tudi s preverjanjem povratne vrednosti. Vrne 'true', če je sprememba uspešna drugače, vrne vrednost 'false'.
3. vsebuje () - Preveriti je, ali Set vsebuje določen predmet v njem. Vrne vrednost 'true', če je predmet prisoten v nizu. Pridobitev predmeta (int indeks) - Element ali predmet vrne v določenem 'indeksu'.
4. je prazno() - Ugotoviti je treba, ali zbirka pomaga, saj v njej ni elementov. Če elementa ni, vrne vrednost 'true'. int lastIndexOf (Objekt obj) - Deluje podobno kot na hrbtni strani indeks() Metoda. Vrne zadnji pojav določenega predmeta 'obj' in vrednost '1' se vrne, če na seznamu ni takega predmeta. Zato se lahko uporablja tudi kot vsebuje () Metoda nastavljenega vmesnika.
6. Odstrani() - Element je odstraniti iz zbirke tako, da ga podate kot parameter metode. ListIterator listIterator () - Ponovi iterator v začetni indeks seznama.
7. velikost () - Šteti število predmetov ali elementov, ki jih ima zbirka. ListIterator listIterator (int indeks) - Pomaga pri ponovnem vpisu seznama, ki se začne pri določenem 'indeksu'.
8. - Odstranjevanje predmeta (int indeks) - Predmet izbriše pri določenem 'indeksu' in kot rezultat vrne izbrisani element. Zmanjša tudi indeks rezultatov seznama, da se odraža črtanje.
9. - Objektni niz (int indeks, objekt obj) - Treba je dodeliti predmet 'obj' seznamu za priklic pri določenem 'indeksu'.
10. - Seznam podvrsti (int začetek, int konec) - Predmet od indeksa 'start' do indeksa 'end' je vključen na seznam, ki je priklical metodo.
  • Vstavljanje Vzdrževanje naročila:

Set nikoli ne vzdržuje vrstnega reda elementov, v katere so vstavljeni vanj, medtem ko jih seznam ohranja. To pravilo velja za LinkedHashSet, saj vzdržuje vrstni red vstavljanja, vendar drugi niz, kot sta HashSet in TreeSet, razvrsti elemente, preden ga shrani. Enako je opisano s spodnjimi primeri.

Set Vhod: Mačka, lutka, Apple.

Shranjeno kot: Apple, Cat, Lutka.

Seznam vnosa: Mačka, lutka, Apple.

Shranjeno kot: Mačka, lutka, Apple.

  • Prisotnost dvojnikov:

Set nikoli ne dovoli dvojnikov, medtem ko jih seznam omogoča. Če je treba na seznam dodati podvojeno vrednost, potem se ta prepiše. Poglejte vzorce dvojnikov Set in List.

Nastavite vhod: 10, 20, 20, 50.

Shranjeno kot: 10, 20, 50.

Seznam vnosa: 10, 20, 20, 50.

Shranjeno kot: 10, 20, 20, 50.

  • Ničelne vrednosti:

Set ima lahko samo eno ničelno vrednost, medtem ko ima seznam lahko več kot eno ničelno vrednost in ni omejen na nobeno število.

Nastavite vnos: null, null, človek, pes, ravnina.

Shranjeno kot: null, pes, človek, letalo.

Seznam vnosa: null, null, človek, pes, ravnina.

Shranjeno kot: null, null, človek, pes, ravnina.

  • Uporaba Iteratorja & ListIteratorja:

Metoda Iterator dobro deluje tako s Set kot Listom, medtem ko metoda ListIterator deluje samo s Listom. ListIterator se lahko uporablja za premikanje naprej in nazaj po seznamu.

  • Prisotnost starejšega razreda:

Set nima zapuščenega razreda, medtem ko ima vmesnik List zapuščino, imenovano "vektor". Vektor uporablja vmesnik List in zato vzdržuje vrstni red vstavljanja. Zaradi prizadevanja za sinhronizacijo je delovanje vektorjev v dodatkih, brisanju in posodobitvah nekoliko počasnejše.

  • Izvedbe:

Nekaj ​​izvedb programa Set je HashSet, LinkedHashSet in TreeSet. Nekaj ​​izvedb seznama vključuje ArrayList in LinkedList.

Kdaj uporabiti Set & List?

Uporaba Set in List je izključno odvisna od zahteve po vzdrževanju vrstnega reda vstavljanja. Ker smo izvedeli, da niz nikoli ne vzdržuje vrstnega reda vstavljanja, ga lahko uporabimo, če je vrstni red manj pomemben. Na podoben način uporabite seznam, kadar morate ohraniti zaporedje vstavljanja.

Razlike v tabeli:

S. št Razlike v Set Seznam
1. Nalog za vstavitev Ohranja vrstni red vstavljanja. Prva vstavljena ostane na prvem mestu in tako naprej, ne glede na vrednost. Nikoli ne vzdržuje vrstnega reda vstavljanja.
2. Metode Uporablja metode, kot so add (), clear (), vsebuje (), isEmpty (), remove () in size (). Uporablja metode, kot so add (), addAll (), get (), lastIndexOf (), ListIterator () s ali brez parametra, remove (), set () in subList ().
3. Podvojene Nikoli ne dovoli dvojnikov in v primeru takih nastopov se vrednost prepiše. Omogoča dvojnike.
4. Ničelne vrednosti Lahko ima največ eno ničelno vrednost. Lahko ima poljubno število ničelnih vrednosti.
5. Uporaba Iteratorja () in seznamaIterator () Uporablja samo iterator metode (). Uporablja iterator () in listIterator ().
6. Prisotnost starega razreda Ni razreda Legacy. V razredu Legacy se imenuje kot vektor.
7. Izvedbe Nekaj ​​izvedb vmesnika Set je HashSet, LinkedHashSet in Tree Set. Nekaj ​​izvedb vmesnika List je LinkedList in ArrayList.

Upam, vključili smo vse možne razlike med nizom in seznamom. Če menite, da smo nekaj zamudili, nas obvestite.