Razlika između skupa i popisa

Razlika između popisa niza i povezanih popisa

Prije nego što uđemo u stvarne razlike, upoznajmo nas kakve zapravo jesu?

Što je skup?

Naišli smo na koncept seta u matematici i ovdje skup manje-više znači isto. Da, to je zbirka elemenata i u većini slučajeva zbirka sličnih elemenata. Možete pokušati dodati ove elemente u Set i pokušati ispisom da shvatite kako se oni zapravo pohranjuju.

Unos u skup: 20, 50, 10, 30.

Zapravo se sprema u Set as 10, 20, 30, 50.

Ovdje su razvrstani elementi i pohranjuju se ne redoslijedom umetanja. Ovo je jedna od značajki Set-a da uvijek sortira elemente prije pohrane i naravno, postoje iznimke od njih, a jedna takva je i LinkedhashSet jer održava redoslijed umetanja elemenata.

U računalnom smislu, skup uključuje nekoliko dodatnih svojstava kao što su Metode i Nasljeđivanje. Metode su poput funkcija, a obavljaju određene zadatke poput dodavanja, uklanjanja ili ponavljanja kroz skup elemenata. Većini nas je poznat izraz nasljeđivanje i ovdje to isto znači. Da, možemo naslijediti metodu iz njene zbirke, tako da se može koristiti s Set sučeljem. Opet govorimo o novom pojmu, tj. Skupu sučelja, i nije ništa više od cijelog niza elemenata, uključujući Metode.

Kako to provesti?

Samo za bolje razumijevanje, predstavili smo skup sa njegovom sintaksom. Iz sintaksi dolje možete prepoznati različite vrste skupa kao što su HashSet i TreeSet.

uvoz java.util. *;

javna klasa Setexample

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

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

Set set = novi HashSet ();

probaj

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

set.add (strani [i]);

Sustava (set);

TreeSet sortedSeteg = novi TreeSet (postavljen);

System.out.println ("Ovdje imamo sortiran izlaz:");

Sustava (sortedSeteg);

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

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

ulov (Izuzetak e)

Izlaz gornjeg koda je sljedeći.

[25, 17, 76, 12, 88]
Ovdje imamo sortirani izlaz:
[12, 17, 25, 76, 88]
Pogledajte prvi element: 12
Pogledajte zadnji element: 88

Što je popis?

Popis proširuje zbirku slično kao što je to učinio Set, ali održava redoslijed umetanja. Pokušajte dodati sljedeća imena na popis i pogledajte kako se dodaje.

Unos u Popis: John, Nancy, Mary, Alice.

Kako je pohranjen u Popisu: John, Nancy, Mary, Alice.

Samo primijetite redoslijed kojim su umetnuti. Možete prepoznati da je "John" prvi element u ulazu i izlazu i da slijedi istim redoslijedom u koji su umetnuta imena. To čak možemo smatrati jednim od glavnih osobina Popisa.

Kako to provesti?

Pogledajmo nekoliko metoda Popisa kao što su ArrayList i LinkedList u sintaksi ispod.

uvoz java.util. *;
javni skup Zbirka primjer

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

Popis a1 = novi ArrayList ();
a1.add ( „John”);
a1.add ( „Nancy”);
a1.add ( „Mary”);
a1.add ( „Alice”);
System.out.println ("Elementi ArrayList su");
System.out.print ("\ t" + a1);

Popis l1 = novi LinkedList ();
l1.add ( „Silvia”);
l1.add ( „Arjun”);
l1.add ( „Deepika”);
l1.add ( „Susan”);
Sustava ();
System.out.println ("Elementi povezanih popisa su");
System.out.print ("\ t" + l1);

Izlaz gornje sintakse je sljedeći.

Elementi ArrayList su

[John, Nancy, Mary, Alice]

Elementi povezane liste

[Silvia, Arjun, Deepika, Susan]

Iz gornjeg koda je jasno da i ArrayList i LinkedList održavaju redoslijed umetanja.

Kako se razlikuju?

  • Metode i opisi:

Skup i popis ima svoje metode, a neke od njih ćemo pogledati ovdje.

S.No Skup - metode Popis - metode
1. dodati() - To je dodavanje predmeta u zbirku. void add (int indeks, objekt obj) - Dodaje objekt 'obj' na navedeni 'indeks' liste poziva i osigurava da nijedan element ne bude prepisan pomicanjem prethodnih elemenata.
2. čisto() - To je uklanjanje predmeta iz kolekcije. boolean addAll (int indeks, zbirka c) - Sveukupnu zbirku 'c' dodaje na popis poziva i na naveden 'indeks'. Također osigurava da nijedan element nije prebrisan. Također možemo provjeriti ispravnost njegovog rada ispitivanjem povratne vrijednosti. Vraća 'true', ako je promjena u suprotnom uspješna, vraća vrijednost 'false'.
3. sadrži () - To je provjera sadrži li set određeni objekt u njemu. Vraća vrijednost 'true' ako je objekt prisutan u skupu. Dobivanje objekta (int indeks) - Vraća element ili objekt na navedenom 'indeksu'.
4. prazno je() - Treba utvrditi pomaže li zbirka kao da nema elemenata u njoj. Vraća vrijednost 'true' ako nema elementa. int lastIndexOf (Objekt obj) - Djeluje slično obrnuto indexOf () Metoda. Vraća posljednju pojavu određenog objekta 'obj', a vrijednost '1' se vraća ako na popisu nema takvog objekta. Stoga se može koristiti i kao sadrži () Način postavljanja sučelja.
6. ukloniti() - To je uklanjanje elementa iz zbirke navodeći ga kao parametar metodi. ListIterator listIterator () - Vraća iterator u početni indeks popisa.
7. veličina() - To je brojanje broja objekata ili elemenata koje ima zbirka. ListIterator listIterator (int indeks) - Pomaže u ponavljanju poziva putem Popisa koji započinje s navedenim 'indeksom'.
8. - Ukloni objekt (int indeks) - Briše objekt u navedenom 'indeksu' i vraća izbrisani element kao rezultat. Također smanjuje indeks rezultata u popisu koji odražavaju brisanje.
9. - Skup objekta (int indeks, objekt obj) - To je dodijeliti objekt 'obj' popisu za pozivanje na navedenom 'indeksu'.
10. - Popis podvrsta (int početak, int kraj) - To je uključenje objekata iz indeksa 'start' do indeksa 'end' u popis koji je pozvao Metodu.
  • Održavanje naloga za umetanje:

Skup nikada ne održava redoslijed elemenata u koji su umetnuti u njega, dok ih Popis ne održava. Za LinkedHashSet postoji iznimka od ovog pravila jer održava redoslijed umetanja, ali drugi skup poput HashSet i TreeSet razvrstava elemente prije nego što ih pohrani. Isto je opisano u donjim primjerima.

set Ulaz: Mačka, lutka, Apple.

Pohranjeno kao: Apple, Cat, Lutka.

Popis unosa: Mačka, lutka, Apple.

Pohranjeno kao: Mačka, lutka, Apple.

  • Prisutnost duplikata:

Skup nikad ne dopušta duplikate, a popis to dopušta. Ako se duplikata mora dodati popisu, tada se prebrisuje. Pogledajte uzorke za duplikate skupa i popisa.

Postavite unos: 10, 20, 20, 50.

Pohranjeno kao: 10, 20, 50.

Popis unosa: 10, 20, 20, 50.

Pohranjeno kao: 10, 20, 20, 50.

  • Nulte vrijednosti:

Skup može imati samo jednu null vrijednost dok Popis može imati više od jedne null vrijednosti i nije ograničen na bilo koji broj.

Postavite unos: null, null, čovjek, pas, avion.

Pohranjeno kao: nula, pas, čovjek, avion.

Unos popisa: null, null, čovjek, pas, avion.

Pohranjeno kao: null, null, čovjek, pas, avion.

  • Upotreba programa Iterator & ListIterator:

Metoda Iterator dobro funkcionira s Setom i Listom, dok metoda ListIterator radi samo sa Listom. ListIterator može se koristiti za kretanje naprijed i unatrag kroz Popis.

  • Prisutnost Legacy Class:

Skup nema naslijeđenu klasu, dok sučelje Popisa ima nasljeđe nazvano "vektor". Vektor koristi sučelje List i zato održava redoslijed umetanja. Zbog napora na sinkronizaciji izvedba vektora u dodavanjima, brisanjima i ažuriranjima malo je sporija.

  • implementacije:

Nekoliko izvedbi skupa su HashSet, LinkedHashSet i TreeSet. Nekoliko implementacija Popisa uključuju ArrayList i LinkedList.

Kada koristiti Set & List?

Upotreba Set i Popisa isključivo ovisi o zahtjevu održavanja redoslijeda umetanja. Kao što smo naučili da Skup nikada ne održava redoslijed umetanja, može ga koristiti kada je redoslijed manje važan. Na sličan način koristite i Popis kad trebate održavati redoslijed umetanja.

Razlike u tabelarnom obliku:

S.No Razlike u set Popis
1. Nalog za umetanje Održava redoslijed umetanja. Prvi umetnuti ostaje na prvom mjestu i tako dalje, bez obzira na vrijednost. Nikada ne održava redoslijed umetanja.
2. metode Koristi metode kao što su add (), clear (), sadrži (), isEmpty (), remove () i size (). Koristi metode kao što su dodavanje (), addAll (), get (), lastIndexOf (), ListIterator () s ili bez parametra, remove (), set () i subList ().
3. Duplikati Nikad ne dopušta duplikate, a u slučaju takvih pojavljivanja, vrijednost se prepisuje. Omogućuje duplikate.
4. Nulte vrijednosti Može imati samo jednu null vrijednost. Može imati bilo koji broj nulte vrijednosti.
5. Upotreba programa Iterator () i listIterator () Koristi samo iterator metode (). Koristi i iterator () kao i listIterator ().
6. Prisutnost Legacy Class Ne postoji Legacy klasa. Ima kao klasa Legacy kao vektor.
7. implementacije Nekoliko implementacija Set sučelja su HashSet, LinkedHashSet i Tree Set. Nekoliko implementacija sučelja popisa su LinkedList i ArrayList.

Nadam se, uvrstili smo sve moguće razlike između skupa i popisa. Ako smatrate da smo nešto propustili, obavijestite nas.