Postavi i Popis

Anonim

Razlika između popisa rasporeda i popisa povezanih

Prije nego što dođemo do stvarnih razlika, neka nam upoznamo što su doista?

Što je skup?

Naišli smo na pojam Set u matematici i Set ovdje više ili manje znači isto. Da, to je zbirka elemenata i u većini slučajeva zbirka sličnih elemenata. Možete pokušati dodati te elemente u skup i pokušati ispisati da biste razumjeli kako je zapravo pohranjen.

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

To je zapravo pohranjeno u Set as 10, 20, 30, 50.

Elementi se razvrstavaju ovdje i nisu pohranjeni u njihovom redoslijedu umetanja. Ovo je jedna od značajki Seta da uvijek razvrstava elemente prije pohranjivanja i, naravno, postoje iznimke od njih, a jedna od njih je i LinkedhashSet jer održava redoslijed umetanja elemenata.

U računalnom smislu Set sadrži nekoliko dodatnih svojstava kao što su Metode i Nasljeđivanje. Metode su baš kao i funkcije i obavljaju određene zadatke poput dodavanja, uklanjanja ili iteracije kroz skup elemenata. Većina nas je poznata po pojmu nasljeđivanje i ovdje znači isto. Da, možemo naslijediti Metodu iz Zbirke, tako da se može koristiti s Set Interfaceom. Opet se govori o novom terminu, tj. Set Interfaceu, i to je ništa više od cijelog skupa elemenata, uključujući Metode.

Kako ga implementirati?

Samo za bolje razumijevanje, predstavili smo skup sa svojim sintaksom. S desne sintakse možete identificirati različite vrste postavki kao što su HashSet i TreeSet.

uvoz java.util. *;

javna klasa Setexample {

javni statički prazni glavni (String args []) {

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

Set set = novi HashSet();

pokušajte {

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

set.add (strani [i]);

}

Sustava (set);

TreeSet sortedSeteg = novi TreeSet(Postavljeno);

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

Sustava (sortedSeteg);

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

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

}

ulov (izuzetak e) {}

}

}

Izlaz navedenog koda je kako slijedi.

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

Što je popis?

Popis proširuje Zbirku slično onome kako je postavio, ali održava redoslijed umetanja. Pokušajte dodati sljedeća imena na popis i vidjeti kako se dodaje na njega.

Unos popisa: John, Nancy, Mary, Alice.

Kako je pohranjena u Popis: John, Nancy, Mary, Alice.

Primjetite redoslijed kojim su umetnuti. Možete utvrditi da je "Ivan" prvi element u ulazu, kao i izlaz, a slijedi isti redoslijed u kojem su imena umetnuta. Možemo čak uzeti u obzir ovo jedno od glavnih svojstava Popis.

Kako ga implementirati?

Pogledajmo nekoliko metoda List, kao što su ArrayList i LinkedList u donjoj sintaksi.

uvoz java.util. *; javni razred Zbirka uzorka {

javni statički prazni glavni (String [] args) {

Popis a1 = novi ArrayList (); a1.add („John”); a1.add („Nancy”); a1.add („Mary”); a1.add („Alice”); System.out.println ("ArrayList elementi 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 LinkedList su"); System.out.print (" t" + l1); }}

Izlaz gornje sintakse je sljedeći.

ArrayList elementi su

[John, Nancy, Mary, Alice]

Elementi LinkedList

[Silvia, Arjun, Deepika, Susan]

Vrlo je jasno iz gore navedenog koda da i ArrayList i LinkedList održavaju redoslijed umetanja.

Kako se razlikuju?

  • Metode i opisi:

Set i popis imaju svoje metode i neka pogledamo nekoliko njih ovdje.

S.No Set - Metode Popis - Metode
1. dodati() - Dodavanje predmeta zbirci. void add (ind index, Object obj) - Dodaju objekt 'obj' u navedenom 'indeksu' popisa poziva i osigurava da se ni jedan element ne prebrisne pomicanjem prethodnih elemenata.
2. čisto() - Ukloniti objekte iz zbirke. boolean addAll (int indeks, Zbirka c) - Dodaje cijelu zbirku 'c' na popisu poziva i na navedeni 'indeks'. Također osigurava da se nijedan element ne prepiše. Također možemo provjeriti točnost svog rada ispitivanjem vrijednosti povratka. Vraća se "istinito" ako je promjena drugačija, vraća vrijednost "lažna".
3. sadrži () - Provjeriti ima li Set u njemu određeni objekt. Vraća vrijednost "istinito" ako je objekt prisutan u Setu. Dobivanje objekta (ind index) - Vraća element ili objekt u određenom 'indeksu'.
4. prazno je() - To je utvrditi hoće li zbirka pomagati kao nijedan element u njemu. Vraća vrijednost "istinito" ako nema elementa. int lastIndexOf (Objekt obj) - Djeluje slično kao obrnuto od indexOf () Metoda. Vraća zadnji događaj navedenog objekta 'obj' i vrijednost '1' se vraća ako nema takvog predmeta na popisu. Stoga se također može koristiti kao sadrži () Način postavljanja sučelja.
6. ukloniti() - Uklanjanje elementa iz zbirke određivanjem parametra za metodu. ListIterator listIterator () - Vraća iterator početnom indeksu popisa.
7. veličina() - To je brojanje predmeta ili elemenata koje zbirka ima. ListIterator popisIterator (int indeks) - Pomaže u iteriranju kroz popis poziva počevši od navedenog "indeksa".
8. Uklanjanje objekta (indeks int) - Briše objekt u navedenom 'indeksu' i vraća izbrisani element kao rezultat. Također smanjuje indekse popisa koji odražavaju brisanje.
9. Postavljeni objekt (int index, Object obj) - To je da se objekt 'obj' dodjeljuje popisu poziva na navedenom 'indeksu'.
10. Popis subList (int start, int end) - Uključiti objekte iz indeksa "start" do krajnjeg indeksa "na popisu koji je pozvao metodu.
  • Održavanje narudžbi umetanja:

Set nikada ne održava redoslijed elemenata u kojima su umetnuti u njega dok ga Popis održava. Postoji iznimka od ovog pravila za LinkedHashSet jer održava redoslijed umetanja, a drugi skup kao što su HashSet i TreeSet razvrstava elemente prije spremanja. Isto je opisano niže u primjerima.

Set Ulaz: mačka, lutka, jabuka.

Pohranjeno kao: Apple, mačka, lutka.

Popis unosa: mačka, lutka, jabuka.

Pohranjeno kao: mačka, lutka, jabuka.

  • Prisutnost duplikata:

Set nikada ne dopušta dupliciranje, a popis to dopušta. Ako se duplikat vrijednost mora dodati popisu, tada će se prepisati. Pogledajte uzorke za postavljanje i popis duplikata.

Postavi ulaz: 10, 20, 20, 50.

Pohranjeno kao: 10, 20, 50.

Unos popisa: 10, 20, 20, 50.

Pohranjeno kao: 10, 20, 20, 50.

  • Null vrijednosti:

Set 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.

Postavi ulaz: null, null, čovjek, pas, avion.

Pohranjeno kao: null, Pas, Čovjek, Plane.

Ulazni popis: null, null, čovjek, pas, avion.

Pohranjeno kao: null, null, Čovjek, Pas, Plane.

  • Korištenje Iterator & ListIterator:

Metoda Iterator dobro funkcionira s Set i Listom, dok Metoda ListIterator radi samo s Listom. ListIterator se može koristiti za skretanje naprijed kao i unatrag kroz popis.

  • Prisutnost Legacy klase:

Set nema naslijeđenu klasu, a sučelje List ima nasljeđe nazvanu "vektorom". Vektor koristi sučelje List i zato održava redoslijed umetanja. Zbog sinkronizacijskih napora, performanse vektora u dodacima, brisanjima i ažuriranjima su malo sporije.

  • implementacije:

Nekoliko implementacija postavljenih su HashSet, LinkedHashSet i TreeSet. Nekoliko implementacija popisa uključuje ArrayList i LinkedList.

Kada koristiti Set & List?

Upotreba seta i popisa isključivo ovisi o zahtjevu održavanja naloga za umetanje. Kao što smo naučili da Set nikad ne održava redoslijed umetanja, može se koristiti kada je red manje važan. Na sličan način, upotrijebite Popis kada trebate zadržati redoslijed umetanja.

Razlike u tabličnom obliku:

S.No Razlike u Set Popis
1. Redoslijed umetanja Održava redoslijed umetanja. Prvo umetnuto ostaje na prvom mjestu i tako dalje bez obzira na vrijednost. Nikada ne održava redoslijed umetanja.
2. metode Koristi metode poput dodavanja (), clear (), sadrži (), isEmpty (), remove () i veličine (). Ona koristi metode kao što su add (), addAll (), get (), lastIndexOf (), ListIterator () s ili bez parametra, remove (), set () i subList ().
3. Duplikati Nikada ne dopušta duplikate, au slučaju takvih pojavljivanja vrijednost se prepisuje. Omogućuje duplikate.
4. Null vrijednosti Maksimalno može imati samo jednu null vrijednost. Može imati bilo koji broj null vrijednosti.
5. Upotreba Iterator () & listIterator () Koristi samo iterator metode (). Koristi i iterator (), kao i popisIterator ().
6. Prisutnost Legacy klase Nema klasi Legacy. Ima kao Legacy klasu nazvanu kao vektor.
7. implementacije Nekoliko implementacija sučelja Set su HashSet, LinkedHashSet i Tree Set. Nekoliko implementacija sučelja s popisa su LinkedList i ArrayList.

Nadamo se, uključili smo svaku moguću razliku između Set i Popis. Ako smatrate da smo nešto propustili, obavijestite nas.