Forskjellen mellom Array List og Linked List
Før vi kommer inn i de faktiske forskjellene, la oss få vite hva de egentlig er?
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.
Input til et sett: 20, 50, 10, 30.
Den lagres faktisk i en Set as 10, 20, 30, 50.
Elementene er sortert her og lagres ikke i deres innføringsordre. Dette er et av funksjonene i Set som det alltid sorterer elementene før lagring og selvfølgelig er det unntak for det, og en slik er LinkedhashSet ettersom den opprettholder innsetting rekkefølgen av elementene.
I datateknikker inneholder settet 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 en ny term, dvs. Set Interface, og det er ikke noe mer enn hele settet av elementer, inkludert metodene.
Bare 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;
Sett sett = nytt HashSet ();
prøv
for (int i = 0; i < 5; i++)
set.add (telle [i]);
System.out.println (set);
TreeSet sortedSeteg = nytt TreeSet (sett);
System.out.println ("Her har vi sortert utdata:");
System.out.println (sortedSeteg);
System.out.println ("Se på det første elementet:" + (Integer) sortedSet.first ());
System.out.println ("Se på det siste elementet:" + (Integer) sortedSet.last ());
fange (unntak e)
Utgangen av den ovennevnte koden er som følger.
[25, 17, 76, 12, 88]
Her har vi den sorterte produksjonen:
[12, 17, 25, 76, 88]
Se på det første elementet: 12
Se på det siste elementet: 88
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.
Slik lagres den i en liste: John, Nancy, Mary, Alice.
Legg merke til bestillingen der de er satt inn. 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.
La oss se på noen av metodene til Liste som ArrayList og LinkedList i nedenstående syntaks.
importer java.util. *;
offentlig klasse Collectionssampleoffentlig statisk tomrom main (String [] args)
Liste a1 = ny ArrayList ();
a1.add ( “John”);
a1.add ( “Nancy”);
a1.add ( “Mary”);
a1.add ( “Alice”);
System.out.println ("ArrayList Elements er");
System.out.print ("\ t" + a1);Liste l1 = ny LinkedList ();
l1.add ( “Silvia”);
l1.add ( “Arjun”);
l1.add ( “Deepika”);
l1.add ( “Torstein”);
System.out.println ();
System.out.println ("LinkedList Elements er");
System.out.print ("\ t" + l1);
Utgangen av syntaksen ovenfor er som følger.
ArrayList Elements er
[John, Nancy, Mary, Alice]
LinkedList Elements
[Silvia, Arjun, Deepika, Susan]
Det er veldig klart fra ovennevnte kode at både ArrayList og LinkedList opprettholder innsettingsordren.
Set og listen har egne metoder og la oss se på noen av dem her.
S.No | Sett - Metoder | Liste - Metoder |
1. | Legg til() - Det er å legge til objekter i en samling. | void add (int indeks, Objekt obj) - Den legger til objektet 'obj' på den angitte 'indeksen' på innkallingslisten, og den sørger for at ingen element overskrives ved å skifte de forrige elementene. |
2. | klar() - Det er å fjerne objekter fra en samling. | boolsk addAll (int indeks, samling c) - Det legger til hele samlingen 'c' til innkallingslisten og på 'indeksen' som er angitt. 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. | Objekt får (int indeks) - Den returnerer elementet eller objektet på den angitte 'indeksen'. |
4. | er tom() - 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 (Objekt obj) - Det fungerer som omvendt av oversikt over() Metode. 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. | fjerne() - 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. | størrelse() - Det er å telle antall gjenstander eller elementer som en samling har. | ListIterator listIterator (int index) - Det hjelper i å løse gjennom påkallingslisten som starter ved den angitte 'indeksen'. |
8. | - | Objekt fjern (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. | - | Objekt sett (int indeks, Objekt obj) - Det er å tilordne objektet 'obj' til oppkallingslisten ved den angitte 'indeksen'. |
10. | - | Liste underliste (int start, int ende) - Det er å inkludere objekter fra indeksen 'start' til indeksens slutt 'i listen som har påkalt metoden. |
Setet opprettholder aldri rekkefølgen av 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.
Et sett tillater 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.
Et sett kan bare ha en null verdi, mens en liste kan ha mer enn en nullverdi og er ikke begrenset til noe tall.
Angi inngang: null, null, mann, hund, fly.
Lagret som: null, hund, mann, fly.
Liste Inndata: null, null, mann, hund, fly.
Lagret som: null, null, mann, hund, fly.
Iterator-metoden fungerer bra både med Set og List, mens metoden ListIterator kun fungerer med Liste. ListIterator kan brukes til å krysse fremover og bakover gjennom listen.
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.
Få av Set-implementasjonene er HashSet, LinkedHashSet og TreeSet. Få av implementeringene av List inkluderer ArrayList og LinkedList.
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å.
S.No | Forskjeller i | Sett | Liste |
1. | Innsettingsordre | Den opprettholder innsettingsordren. Den første innsatsen forblir i første omgang og så videre uavhengig av verdien. | Den 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. | duplikater | Det tillater aldri duplikater, og i tilfelle slike forekomster blir verdien 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 () samt listenIterator (). |
6. | Tilstedeværelse av eldre klasse | Det er ingen eldre klasse. | Den har som Legacy klasse kalt som en vektor. |
7. | implementeringer | Få av de angitte grensesnittimplementasjonene er HashSet, LinkedHashSet og Tree Set. | Få av listen grensesnitt implementeringer 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.