Forskel mellem sæt og liste

Forskel mellem matrixliste og linket liste

Inden vi kommer ind på de faktiske forskelle, så lad os lære, hvad de virkelig er?

Hvad er et sæt?

Vi er kommet over konceptet Sæt i matematik, og Sættet her betyder 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øve at udskrive for at forstå, hvordan det faktisk er gemt.

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

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

Elementerne sorteres her og gemmes ikke i deres indsættelsesrækkefølge. Dette er en af ​​funktionerne i Set, at det altid sorterer elementerne før opbevaring, og der er selvfølgelig undtagelser fra det, og et sådant er LinkedhashSet, da det opretholder elementernes indsættelsesrækkefølge.

I computermæssige termer indeholder sættet få ekstra egenskaber, såsom metoder og arv. Metoder er ligesom funktioner, og de udfører visse opgaver, såsom tilføjelse, fjernelse eller iterering gennem sæt af elementer. De fleste af os er velkendte for udtrykket arv, og det betyder det samme her. Ja, vi kan arve en metode fra dens samling, så den kan bruges med sætgrænsefladen. Igen snakker vi om et nyt udtryk, dvs. sætgrænsefladen, og det er intet andet end hele sæt elementer inklusive metoderne.

Sådan implementeres det?

Bare for en bedre forståelse har vi repræsenteret et sæt med dets syntaks. Fra nedenstående syntaks kan du identificere de forskellige typer sæt, f.eks. HashSet og TreeSet.

import java.util. *;

offentlig klasse Setexample

public static void main (String args [])

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

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

prøve

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

set.add (tælle [i]);

System.out.println (sæt);

TreeSet sortedSeteg = nyt TreeSet (sæt);

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

System.out.println (sortedSeteg);

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

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

fangst (undtagelse e)

Output fra ovenstående 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 liste?

En liste udvider samling, der ligner, hvordan et sæt gjorde, men det opretholder indsættelsesrækkefølgen. Du prøver at tilføje følgende navne til en liste og se, hvordan der tilføjes den.

Input til en liste: John, Nancy, Mary, Alice.

Sådan gemmes det på en liste: John, Nancy, Mary, Alice.

Bemærk bare 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 navnene indsættes. Vi kan endda overveje denne som en af ​​de største egenskaber ved List.

Sådan implementeres det?

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

import java.util. *;
samling af offentlig klasse

public static void main (String [] args)

Liste a1 = ny ArrayList ();
a1.add ( ”John”);
a1.add ( ”Nancy”);
a1.add ( ”Mary”);
a1.add ( ”Alice”);
System.out.println (”ArrayList Elements are”);
System.out.print (“\ t” + a1);

Liste l1 = ny LinkedList ();
l1.add ( ”Silvia”);
l1.add ( ”Arjun”);
l1.add ( ”Deepika”);
l1.add ( ”Susan”);
System.out.println ();
System.out.println (”LinkedList Elements are”);
System.out.print (“\ t” + l1);

Outputet fra ovenstående syntaks er som følger.

ArrayList-elementer er

[John, Nancy, Mary, Alice]

LinkedList Elements

[Silvia, Arjun, Deepika, Susan]

Det fremgår meget af ovenstående kode, at både ArrayList og LinkedList opretholder indsættelsesrækkefølgen.

Hvordan de adskiller sig?

  • Metoder og beskrivelser:

Sættet og listen har sine egne metoder, og lad os se på få af dem her.

S.No Sæt - Metoder Liste - Metoder
1. tilføje() - Det er at føje objekter til en samling. void add (int index, Object obj) - Det tilføjer objektet 'obj' ved det specificerede 'indeks' på den påkaldende liste, og det sørger for, at intet element overskrives ved at skifte de forrige elementer.
2. klar() - Det er at fjerne objekter fra en samling. boolsk addAll (int-indeks, samling c) - Det tilføjer hele samlingen 'c' til påkaldelseslisten og til det angivne 'indeks'. Det sikrer også, at ingen elementer overskrives. Vi kan også kontrollere rigtigheden af ​​dens funktion ved at undersøge returværdien. Det returnerer 'sandt', hvis ændringen ellers lykkes, returnerer den en værdi 'falsk'.
3. indeholder() - Det er for at kontrollere, om sættet indeholder et bestemt objekt i det. Det returnerer en værdi 'sand', hvis objektet er til stede i sættet. Objekt get (int-indeks) - Det returnerer elementet eller objektet på det specificerede 'indeks'.
4. er tom() - Det er for at afgøre, om samlingen hjælper, da der ikke er elementer i den. Det returnerer en værdi 'sand', hvis der ikke er noget element. int lastIndexOf (Objektobj) - Det fungerer på samme måde som omvendt indeks af() Metode. Den returnerer den sidste forekomst af det specificerede objekt 'obj', og en værdi '1' returneres, hvis der ikke er noget sådant objekt på listen. Derfor kan det også bruges som indeholder() Metode til sætgrænsefladen.
6. fjerne() - Det er at fjerne et element fra en samling ved at specificere det som en parameter til metoden. ListIterator listIterator () - Den returnerer en iterator til startindekset på listen.
7. størrelse() - Det er at tælle antallet af objekter eller elementer, som en samling har. ListIterator listIterator (int-indeks) - Det hjælper med at iterere gennem den påberåbende liste, der starter ved det angivne 'indeks'.
8. - Objekt fjern (int-indeks) - Det sletter objektet ved det specificerede 'indeks' og returnerer det slettede element som resultat. Det reducerer også de resulterende listeindekser for at afspejle sletningen.
9. - Objektsæt (int-indeks, Objektobj) - Det er at tildele objektet 'obj' til den påkaldende liste ved det specificerede 'indeks'.
10. - Liste subList (int start, int slut) - Det er at medtage objekterne fra indekset 'start' til indekset 'slut' på listen, der har påkaldt metoden.
  • Vedligeholdelse af indsættelsesordre:

Sættet opretholder aldrig rækkefølgen af ​​de elementer, som de er indsat i det, mens listen opretholder det. Der er en undtagelse fra denne regel for LinkedHashSet, da det opretholder indsættelsesrækkefølgen, men det andet sæt, såsom HashSet og TreeSet, sorterer elementerne, før de gemmes. Det samme er beskrevet med eksempler nedenfor.

Sæt Input: Cat, Doll, Apple.

Gemt som: Apple, Cat, Doll.

Liste input: Cat, Doll, Apple.

Gemt som: Cat, Doll, Apple.

  • Tilstedeværelsen af ​​duplikater:

Et sæt tillader aldrig duplikater, mens en liste tillader det. Hvis der skal føjes en duplikatværdi til en liste, overskrives den. Se på eksemplerne for sæt og liste duplikater.

Indstil input: 10, 20, 20, 50.

Gemt som: 10, 20, 50.

Listeindgang: 10, 20, 20, 50.

Gemt som: 10, 20, 20, 50.

  • Nul værdier:

Et sæt kan kun have en nullværdi, mens en liste kan have mere end en nullværdi og er ikke begrænset til noget tal.

Sæt 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:

Iterator-metoden fungerer godt med både Sæt og Liste, mens metoden ListIterator kun fungerer med Liste. ListIterator kan bruges til at krydse fremad såvel som bagud gennem listen.

  • Tilstedeværelsen af ​​Legacy Class:

Sættet har ingen arvsklasse, mens listegrænsefladen har en arv, der kaldes 'vektor'. En vektor bruger List-grænsefladen, og den opretholder derfor indsættelsesrækkefølgen. På grund af synkroniseringsindsatsen er ydelsen af ​​vektor i tilføjelser, sletninger og opdateringer lidt langsommere.

  • implementeringer:

Få af Set-implementeringerne er HashSet, LinkedHashSet og TreeSet. Få af implementeringerne af listen inkluderer ArrayList og LinkedList.

Hvornår skal du bruge Set & List?

Brugen af ​​sæt og liste er rent afhængig af kravet om vedligeholdelse af indsættelsesordren. Som vi har lært, at et sæt aldrig opretholder indsættelsesrækkefølgen, kan det bruges, når ordren er af mindre betydning. På en lignende måde skal du bruge listen, når du også har brug for at bevare indsættelsessekvensen.

Forskelle i tabelform:

S.No Forskelle i Sæt Liste
1. Indsættelsesordre Det opretholder indsættelsesrækkefølgen. Den første indsatte forbliver i første omgang og så videre uanset dens værdi. Det opretholder aldrig indsættelsesrækkefølgen.
2. Metoder Den bruger metoderne som tilføj (), rydd (), indeholder (), er tom (), fjern () og størrelse (). Den bruger metoderne såsom add (), addAll (), get (), lastIndexOf (), ListIterator () med eller uden parameter, fjern (), sæt () og subList ().
3. dubletter Det tillader aldrig duplikater, og i tilfælde af sådanne optrædener overskrives værdien. Det tillader duplikater.
4. Nul værdier Det kan maksimalt kun have en nullværdi. Det kan have et hvilket som helst antal nulværdier.
5. Brug af Iterator () & listIterator () Den bruger kun metoden iterator (). Den bruger både iteratoren () såvel som listIterator ().
6. Tilstedeværelse af Legacy Class Der er ingen Legacy-klasse. Det har som Legacy-klasse kaldet en vektor.
7. implementeringer Få af Set-interface-implementeringerne er HashSet, LinkedHashSet og Tree Set. Få af implementeringerne af List-interface er LinkedList og ArrayList.

Håb, vi har inkluderet enhver mulig forskel mellem sættet og listen. Hvis du føler, at vi har gået glip af noget, så lad os vide det.