Forskjell mellom Set og Liste Forskjellen mellom

Anonim

Forskjellen mellom Array List og Linked List

Før vi kommer inn i de faktiske forskjellene, la oss bli kjent med hva de egentlig er?

Hva er et sett?

Vi har kommet over begrepet Set in mathematics og Set her er mer eller mindre det samme. Ja, det er en samling av elementer og i de fleste tilfeller en samling av lignende elementer. Du kan prøve å legge disse elementene til et sett, og prøv å skrive ut for å forstå hvordan den faktisk lagres.

Inngang til et sett: 20, 50, 10, 30.

Det er faktisk lagret i et sett som 10, 20, 30, 50.

Elementene er sortert her og lagres ikke i deres innføringsordre. Dette er et av funksjonene i Set som alltid sorterer elementene før lagring og selvfølgelig er det unntak for det, og en slik er LinkedhashSet som den opprettholder elementets innføringsordre.

I datamateriale inneholder Set noen få ekstra egenskaper, for eksempel metoder og arv. Metoder er akkurat som funksjoner, og de gjør visse oppgaver som å legge til, fjerne eller iterere gjennom settet av elementer. De fleste av oss er godt kjent med begrepet arvelighet og det betyr det samme her. Ja, vi kan arve en metode fra samlingen, slik at den kan brukes med Set Interface. Igjen snakker vi om et nytt begrep i. e. Set-grensesnittet, og det er ikke noe mer enn hele settet av elementer, inkludert metodene.

Hvordan implementere det?

For en bedre forståelse har vi representert et sett med sin syntaks. Fra nedenstående syntaks kan du identifisere forskjellige typer sett som HashSet og TreeSet.

importer java. util. *;

offentlig klasse Setexample {

offentlig statisk tomrom main (String args []) {

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

Angi sett = nytt HashSet ();

prøv {

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

sett. legg (telle [i]);

}

System. ute. println (set);

TreeSet sortedSeteg = nytt TreeSet (sett);

System. ute. println ("Her har vi sortert utgang:");

System. ute. println (sortedSeteg);

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

System. ute. println ("Se på det siste elementet:" + (Integer) sortedSet. last ());

}

Fangst (Unntak e) {}

}

}

Utgangen av den ovennevnte koden er som følger.

[25, 17, 76, 12, 88]

Her har vi sortert utgang:

[12, 17, 25, 76, 88]

Se på det første elementet: 12 > Se på det siste elementet: 88

Hva er List?

En liste utvider samlingen som ligner på hvordan et sett gjorde, men det opprettholder rekkefølgen på innsetting. Du prøver å legge til følgende navn i en liste og se hvordan det legges til det.

Inngangen til en liste:

John, Nancy, Mary, Alice. Hvordan det er lagret i en liste:

John, Nancy, Mary, Alice. Legg merke til hvilken rekkefølge de er satt inn i. Du kan identifisere at "John" er det første elementet i både input og output og følges av samme rekkefølge som navnene er satt inn. Vi kan også vurdere denne en av de store egenskapene til List.

Hvordan implementere det?

La oss se på noen av metodene til Liste som ArrayList og LinkedList i nedenstående syntaks.

importer java. util. *;

offentlig klasse Samlingseksempel {

statisk statisk tomrom (String [] args) {

Liste a1 = Ny ArrayList ();

a1. legge til (“John”);

a1. legg (“Nancy”);

a1. legge til (“Mary”);

a1. legge til (“Alice”);

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

System. ute. skriv ut (" t" + a1);

Liste l1 = ny LinkedList ();

l1. legg (“Silvia”);

l1. legg (“Arjun”);

l1. legg (“Deepika”);

l1. legge til (“Susan”);

System. ute. println ();

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

System. ute. skriv ut (" t" + l1); }}

Utgangen av syntaksen ovenfor er som følger.

ArrayList Elements er

[John, Nancy, Mary, Alice]

Listelisteelementer

[Silvia, Arjun, Deepika, Susan]

Det er veldig klart fra koden ovenfor at både ArrayList og LinkedList opprettholder innsettingsordren.

Hvordan de annerledes?

Metoder og beskrivelser:

  • Sett og listen har egne metoder og la oss se på noen av dem her.

S. Ingen

Angi - Metoder Liste - Metoder 1.
add () - Det er å legge til objekter i en samling. void add (int indeks, Objekt obj) - Det legger til objektet 'obj' på den angitte 'indeksen' på innkallingslisten, og det sørger for at ingen element overskrives ved å skifte de tidligere elementene. 2.
clear () - Det er å fjerne objekter fra en samling. boolsk addAll (int indeks, samling c) - Den legger til hele samlingen 'c' til innkallingslisten og på 'indeksen' spesifisert. Det sikrer også at ingen elementer blir overskrevet. Vi kan også sjekke korrektheten av operasjonen ved å undersøke returverdien. Den returnerer 'sant' hvis endringen lykkes ellers, returnerer den en verdi 'false'. 3.
inneholder () - Det er å kontrollere om Set inneholder et bestemt objekt i den. Den returnerer en verdi 'true' hvis objektet er til stede i Set. Object get (int index) - Det returnerer elementet eller objektet til den angitte 'indeksen'. 4.
erEmpty () - Det er å avgjøre om samlingen hjelper inn som ingen elementer i den. Det returnerer en verdi 'true' hvis det ikke er noe element. int lastIndexOf (Object obj) - Den fungerer som omvendt av indexOf () Metoden. Den returnerer den siste forekomsten av det angitte objektet 'obj' og en verdi '1' returneres hvis det ikke finnes noe slikt objekt i listen. Derfor kan den også brukes som inneholder () Metode for Set Interface. 6.
fjern () - Det er å fjerne et element fra en samling ved å spesifisere det som en parameter til metoden. ListIterator listIterator () - Den returnerer en iterator til startindeksen til listen. 7.
size () - Det er å telle antall objekter eller elementer som en samling har. ListIterator listIterator (int index) - Det hjelper med å iterere gjennom oppkallingslisten som starter ved den angitte indeksen. 8.
- Objekt fjerner (int indeks) - Det sletter objektet ved den angitte 'indeksen' og returnerer det slettede elementet som resultat. Det avtar også de resulterende listedataene for å gjenspeile slettingen. 9.
- Objektsett (int indeks, Objektobjektiv) - Det er å tilordne objektet 'obj' til innkallingslisten ved den angitte indeksen. 10.
- Liste underliste (int start, int end) - Det er å inkludere objekter fra indeksen 'start' til indeksen 'slutt' i listen som har påkalt metoden. Innlegg Bestillingsvedlikehold:
  • Setet opprettholder aldri rekkefølgen på elementene de er satt inn i, mens listen opprettholder den. Det er et unntak fra denne regelen for LinkedHashSet, da den opprettholder rekkefølgen for innføring, men den andre Set som HashSet og TreeSet sorterer elementene før de lagres. Det samme er beskrevet med eksempler nedenfor.

Sett

Input: Katt, Dukke, Apple. Lagret som: Apple, Cat, Doll.

Listeinngang: Katt, Dukke, Apple.

Lagret som: Katt, Dukke, Apple.

Tilstedeværelsen av duplikater:

  • Et sett lar aldri duplikater, mens en liste tillater det. Hvis en duplikatverdi må legges til en liste, blir den overskrevet. Se på prøvene for Set and List duplikater.

Angi inngang: 10, 20, 20, 50.

Lagret som: 10, 20, 50.

Listeinngang: 10, 20, 20, 50.

Lagret som: 10, 20, 20, 50.

Nullverdier:

  • Et sett kan bare ha en null verdi, mens en liste kan ha mer enn en nullverdi og ikke er begrenset til noe tall.

Angi inngang: null, null, mann, hund, fly.

Lagret som: null, hund, mann, fly.

Listeinngang: null, null, mann, hund, fly.

Lagret som: null, null, mann, hund, fly.

Bruk av Iterator og ListIterator:

  • Iteratormetoden fungerer bra både med Set og List mens metoden ListIterator kun fungerer med List. ListIterator kan brukes til å krysse fremover og bakover gjennom listen.

Tilstedeværelsen av Legacy Class:

  • Setet har ingen arvsklasse, mens List-grensesnittet har en arv kalt som 'vektor'. En vektor bruker List-grensesnittet, og derfor opprettholder ordren for innføring. På grunn av synkroniseringsarbeidet er ytelsen til vektor i tillegg, slettinger og oppdateringer litt tregere.

Implementeringer:

  • Noen av de angitte implementasjonene er HashSet, LinkedHashSet og TreeSet. Få av implementeringene av List inkluderer ArrayList og LinkedList.

Når skal du bruke Set & List?

Bruken av Set og List er rent avhengig av kravet om vedlikehold av innføringsordren.Som vi har lært at et sett aldri opprettholder ordren for innføring, kan den brukes når bestillingen er av mindre betydning. På samme måte bruker du listen når du trenger å opprettholde innsettingssekvensen også.

Forskjeller i tabellform:

S. Ingen

Forskjeller i Sett Liste 1.
Innføringsordre Den opprettholder innsettingsordren. Den første innsatsen forblir i første omgang og så videre uavhengig av verdien. Det opprettholder aldri innføringsordren. 2.
Metoder Den bruker metoder som add (), clear (), inneholder (), isEmpty (), remove () og size (). Den bruker metoder som add (), addAll (), get (), lastIndexOf (), ListIterator () med eller uten parameter, fjern (), sett () og subList (). 3.
Dupliserer Det tillater aldri duplikater, og i tilfelle slike utseende blir overskriften overskrevet. Det tillater duplikater. 4.
nullverdier Det kan bare ha en null verdi på maksimum. Det kan ha noen null nullverdier. 5.
Bruk av Iterator () & listIterator () Den bruker bare metoden iterator (). Den bruker både iteratoren () og listenIterator (). 6.
Tilstedeværelse av eldre klasse Det er ingen eldre klasse. Den har som Legacy klasse kalt som en vektor. 7.
Implementeringer Noen av de angitte grensesnittimplementasjonene er HashSet, LinkedHashSet og Tree Set. Få av listegrensesnittimplementasjonene er LinkedList og ArrayList. Håper, vi har tatt med alle mulige forskjeller mellom Set og List. Hvis du føler at vi har gått glipp av noe, vennligst gi oss beskjed.