Forskel mellem sæt og liste Forskel mellem

Anonim

Forskel mellem Array List og Linked List

Før vi kommer ind i de faktiske forskelle, lad os lære at vide, hvad de egentlig er?

Hvad er et sæt?

Vi har overgået begrebet Set in mathematics og Set her er mere eller mindre det samme. Ja, det er en samling af elementer og i de fleste tilfælde en samling af lignende elementer. Du kan prøve at tilføje disse elementer til et sæt, og prøv at udskrive for at forstå, hvordan den faktisk gemmes.

Indgang til et sæt: 20, 50, 10, 30.

Det er faktisk gemt i et sæt som 10, 20, 30, 50.

Elementerne sorteres her og lagres ikke i deres indsætningsrækkefølge. Dette er et af funktionerne i Set, at det altid sorterer elementerne før opbevaring og selvfølgelig er der undtagelser til det, og en sådan er LinkedhashSet, da den opretholder elementets indsættelsesrækkefølge.

I computerbetingelser indeholder sætet få ekstra egenskaber, såsom metoder og arvelighed. Metoder er ligesom funktioner, og de gør visse opgaver som at tilføje, fjerne eller iterere gennem elementet. De fleste af os er velkendte af begrebet arv og det betyder det samme her. Ja, vi kan arve en metode fra dens samling, så den kan bruges sammen med Set Interface. Igen taler vi om et nyt udtryk i. e. Set-grænsefladen, og det er ikke mere end hele sæt af elementer, herunder metoderne.

Hvordan implementeres det?

For en bedre forståelse har vi repræsenteret et sæt med sin syntaks. Fra nedenstående syntaks kan du identificere forskellige typer af sæt som HashSet og TreeSet.

importer java. util. *;

offentlig klasse Setexample {

offentlig statisk tomgangshoved (String args []) {

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

Sæt sæt = nyt HashSet ();

prøv {

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

sæt. tilføje (tælle [i]);

}

System. ud. println (sæt);

TreeSet sortedSeteg = nyt TreeSet (sæt);

System. ud. println ("Her har vi den sorterede output:");

System. ud. println (sortedSeteg);

System. ud. println ("Se på det første element:" + (Integer) sortedSet. first ());

System. ud. println ("Se på det sidste element:" + (Integer) sortedSet. last ());

}

Fangst (Undtagelse e) {}

}

}

Udgangen af ​​ovennævnte kode er som følger.

[25, 17, 76, 12, 88]

Her har vi den sorterede output:

[12, 17, 25, 76, 88]

Se på det første element: 12 > Se på det sidste element: 88

Hvad er List?

En liste udvider samlingen ligner, hvordan et sæt gjorde, men det opretholder rækkefølgen af ​​indsættelse. Du forsøger at tilføje følgende navne til en liste og se, hvordan det tilføjes.

Indgangen til en liste:

John, Nancy, Mary, Alice. Sådan opbevares det i en liste:

John, Nancy, Mary, Alice. Læg mærke til den rækkefølge, de er indsat i. Du kan identificere, at 'John' er det første element i input såvel som output og efterfølges af den samme rækkefølge, som navne indsættes. Vi kan endda overveje denne en af ​​de vigtigste egenskaber i List.

Hvordan implementeres det?

Lad os se på nogle af metoderne i List som ArrayList og LinkedList i nedenstående syntaks.

importer java. util. *;

public class Collectionssample {

offentlig statisk tomt hoved (String [] args) {

Liste a1 = ny ArrayList ();

a1. tilføje (”John”);

a1. tilføje (”Nancy”);

a1. tilføje (”Mary”);

a1. tilføje (”Alice”);

System. ud. println ("ArrayList Elements er");

System. ud. udskrive (" t" + a1);

Liste l1 = Ny LinkedList ();

l1. tilføje (”Silvia”);

l1. tilføje (”Arjun”);

l1. tilføje (”Deepika”);

l1. tilføje (”Susan”);

System. ud. println ();

System. ud. println ("LinkedList Elements er");

System. ud. print (" t" + l1); }}

Udgangen af ​​ovenstående syntaks er som følger.

ArrayList Elements er

[LinkedList Elements

[Silvia, Arjun, Deepika, Susan]

Det er meget klart fra ovenstående kode, at både ArrayList og LinkedList opretholder indsættelsesordren.

Hvordan de adskiller sig?

Metoder og beskrivelser:

Set og listen har sine egne metoder og lad os se på få af dem her.

  • S. Ingen

Sæt - Metoder

Liste - Metoder 1. tilføj ()
- Det er at tilføje objekter til en samling. void add (int indeks, Objekt obj) - Det tilføjer objektet 'obj' på det angivne 'indeks' på opkaldslisten, og det sørger for, at intet element overskrives ved at skifte de foregående elementer. 2. clear () -
Det er at fjerne objekter fra en samling. boolean addAll (int indeks, samling c) - Det tilføjer hele samlingen 'c' til opkaldslisten og ved 'angivet' indeks. Det sikrer også, at ingen elementer overskrives. Vi kan også kontrollere rigtigheden af ​​dens drift ved at undersøge returværdien. Den returnerer 'true', hvis ændringen lykkes ellers, returnerer den en værdi 'false'. 3. indeholder () -
Det skal kontrolleres, om Set indeholder et bestemt objekt i den. Det returnerer en værdi 'true', hvis objektet er til stede i Set. Objekt get (int indeks) - Det returnerer elementet eller objektet på det angivne 'indeks'. 4. erEmpty ()
- Det er at afgøre, om samlingen hjælper ind som ingen elementer i den. Det returnerer en værdi 'true', hvis der ikke er noget element. int lastIndexOf (Objektobjektiv) - Det fungerer som omvendt af indexOf () Metoden. Det returnerer den sidste forekomst af det angivne Objekt 'obj' og en værdi '1' returneres, hvis der ikke findes noget sådant i listen. Derfor kan den også bruges som indeholder () Metode til Set Interface. 6. fjern ()
- Det er at fjerne et element fra en samling ved at angive det som en parameter til metoden. ListIterator listIterator () - Den returnerer en iterator til startindekset i listen. 7. størrelse ()
- Det er at tælle antallet af objekter eller elementer, som en samling har. ListIterator listIterator (int index) - Det hjælper med at iterere gennem påkaldslisten, der starter ved det angivne 'indeks'. 8. -
Objekt fjerner (int indeks) - Det sletter objektet ved det angivne 'indeks' og returnerer det slettede element som resultat. Det reducerer også de resulterende listindekser for at afspejle sletningen. 9. -
Objekt sæt (int indeks, Objekt obj) - Det er at tildele objektet 'obj' til opkaldslisten på det angivne 'indeks'. 10. -
Liste underliste (int start, int end) - Det skal indeholde objekterne fra indekset 'start' til indekset 'ende' i listen, der har påberåbt Metoden. Indsættelse Bestil vedligeholdelse: Setet opretholder aldrig rækkefølgen af ​​de elementer, de er indsat i, mens listen opretholder det. Der er en undtagelse til denne regel for LinkedHashSet, da den vedligeholder rækkefølgen af ​​indsættelse, men den anden Set som HashSet og TreeSet sorterer elementerne, før de lagres. Det samme er beskrevet med eksempler nedenfor.
  • Indstil

Indgang: Katte, Dukke, Apple.

Opbevaret som: Apple, Cat, Doll.

Liste Indgang: Katte, Dukke, Apple.

Gemt som: Katte, Dukke, Apple.

Tilstedeværelsen af ​​duplikater:

Et sæt tillader aldrig duplikater, mens en liste tillader det. Hvis en duplikatværdi skal tilføjes til en liste, bliver den overskrevet. Se på prøverne til Set og List-duplikater.

  • Indstil: 10, 20, 20, 50.

Gemt som: 10, 20, 50.

Listeindgang: 10, 20, 20, 50.

Gemt som: 10, 20, 20, 50.

Nulværdier:

Et sæt kan kun have en null værdi, mens en liste kan have mere end en nullværdi og er ikke begrænset til et hvilket som helst nummer.

  • Indstil input: null, null, mand, hund, fly.

Gemt som: null, hund, mand, fly.

Listeindgang: null, null, mand, hund, fly.

Gemt som: null, null, mand, hund, fly.

Brug af Iterator & ListIterator:

Iteratormetoden fungerer godt både med Set og List, mens metoden ListIterator kun fungerer med List. ListIterator kan bruges til at krydse fremad og tilbage gennem listen.

  • Tilstedeværelsen af ​​Legacy Class:

Sættet har ingen arvsklasse, mens List-grænsefladen har en arv kaldet som 'vektor'en. En vektor bruger List-grænsefladen, og derfor vedligeholdes rækkefølgen af ​​indsættelse. På grund af synkroniseringsindsatsen er udførelsen af ​​vektor i tilføjelser, sletninger og opdateringer lidt langsommere.

  • Implementeringer:

Få af de indstillede implementeringer er HashSet, LinkedHashSet og TreeSet. Få af implementeringer af List inkluderer ArrayList og LinkedList.

  • Hvornår skal du bruge Set & List?

Brugen af ​​Set og List er rent afhængig af kravet om vedligeholdelse af indsættelsesordren.Som vi har lært, at et sæt aldrig opretholder rækkefølgen af ​​indsættelse, kan den bruges, når ordren er af mindre betydning. På samme måde skal du bruge listen, når du også har brug for at opretholde sekvensen for indsættelse.

Forskelle i tabularform:

S. Ingen

Forskelle i

Sæt Liste 1. Indsætningsordre
Den opretholder indsættelsesordren. Den første indsats forbliver i første omgang og så videre uanset dens værdi. Det opretholder aldrig indsættelsesordren. 2. Metoder
Den bruger metoderne som add (), clear (), indeholder (), isEmpty (), remove () og size (). Det bruger metoderne som add (), addAll (), get (), lastIndexOf (), ListIterator () med eller uden parameter, fjern (), sæt () og subList (). 3. Duplicates
Det tillader aldrig duplikater, og i tilfælde af sådanne optrædener bliver værdien overskrevet. Det tillader duplikater. 4. Nulværdier
Det kan kun have en nullværdi på maksimum. Det kan have et hvilket som helst antal nullværdier. 5. Brug af Iterator () & listIterator ()
Den bruger kun metode iteratoren (). Den bruger både iteratoren () såvel som listenIterator (). 6. Tilstedeværelse af arvsklasse
Der er ingen arvsklasse. Det har som Legacy klasse kaldes som en vektor. 7. Implementeringer
Få af de indstillede interface implementeringer er HashSet, LinkedHashSet og Tree Set. Få af listen interface implementeringer er LinkedList og ArrayList. Håber, vi har inkluderet enhver mulig forskel mellem Set og List. Hvis du føler, at vi har savnet noget, så lad os vide det.