Forskellen mellem C # Array vs List

C # Array vs List er overalt hvor abstraktion og implementering af computere møder hinanden. En matrix er utroligt meget bundet til hardwarebegrebet kontinuerlig, sammenhængende hukommelse, hvor hver del er identisk i størrelse (selvom disse dele typisk er adresser, og så snak med referencer, der ikke er identisk i størrelse). En liste kan være en idé (fra aritmetik til et omfang), uanset hvor man bestiller dele, og hvor der er (normalt) en start og finish, og dermed hvor indeksering er mulig. Disse 2 ideer stemmer ganske godt sammen. Når vi først overvejer en liste som en abstrakt datasortering, en tilgang til at få adgang til og manipulere data, er vi i stand til at bryde et antal af disse regler.

Hvad er en matrix?

En matrix kan være et sekventivt sortiment af sammenlignelige data, som der vil blive adgang til i henhold til “indekset”. Det er den bedste stil i et system, hvor vejret kommer til at holde sig i et sammenhængende hukommelsessted.

I Array starter indekset ved nul, så for at få adgang til den primære del af En matrix “numarray”, burde det skrives som numarray (0).

En matrix kan være en rækkefølge i hukommelsen, der optager byte af n * -størrelse (type), uanset hvor n er, at længden på matrixen og -størrelsen (-typen) er den størrelse i hukommelsen, der er nødvendig for at gemme den infosortering, du fremskridt til brug inden for matrixen. Dette antyder, at hvis du gerne vil danne et array på hundrede ints, og hvert int optager fire byte, skal du muligvis være tvunget til at have et ubrugt hukommelsesafsnit på mindst fire hundrede byte (100 * 4). Dette indebærer desuden, at matrixen er temmelig billig at forme, løsne og bruge som et resultat af deres hukommelsesbiter.

Array-indstillinger: -

  • Infoen opbevares i en type kontinuerlig hukommelsesallokering. hver halvdel følger forskelligt, blot når den er inden for m / y. der er ingen tilfældighed i tildelingen.
  • De giver tilfældig adgang som arr (0), arr (6) osv.
  • Der er en statisk allokering af hukommelse. n dette kan resultere i spild af hukommelse.
  • Der er kun 1 typografi af data i hver celle i en matrix.
  • Indsættelse og sletning er lidt længere intens.

Hvad er en liste?

ArrayList kan være et sortiment af objekter af samme eller forskellige typer. Dimensionerne på en ArrayList er dynamisk oppustet eller skåret efter behov. Det fungerer dog som en matrix, men i modsætning til en matrix i ArrayList, tildeles eller dynamiseres ting dynamisk, dvs. du vil tilføje, fjerne, indeksere eller jage efter data i et meget sortiment.

En liste, men kan være en helt anden struktur. De fleste listeimplementeringer er en blanding af noder, der gemmer: en. - Én pris og, 2. - En eller en masse tip, der holder knudepunkterne forbundet mellem dem. Dette antyder, at du bare ikke ønsker en enorm del af tilgængelig hukommelse med en størrelse, der er stor nok til at bære alle dine data, fordi noderne er spredt gennem din hukommelse.

Listeindstillinger: -

  • Info holdes tilfældigt i komponenter. n hver halvdel er forbundet til forskellige via en markør til næste celle (n til den forrige celle bare i tilfælde af dobbeltlinkliste)
  • De skal tilgås i træk takket være afhængigheden af ​​hver halvdel
  • Det tildeles dynamisk, at m / y er tildelt hver celle, når en procesanmodning om det er en gang. Der er således ingen m / y-spild
  • En enkelt celle er opdelt i flere komponenter, der hver har oplysninger af forskellig datasort. Men det sidste skal i det væsentlige være markøren til en efterfølgende celle
  • Indsættelse og sletning er meget lettere og hurtigere. At se ud er også lettere.

Sammenligning fra hoved til hoved mellem C # Array vs liste

Nedenfor er top 5-forskellen mellem C # Array vs List

Nøgleforskel mellem C # Array vs List

Som du kan se, er der mange forskelle mellem C # Array vs List-ydeevne. Lad os se på den øverste sammenligning mellem C # Array vs Liste nedenfor -

  1. Array lagrer data af samme art, mens ArrayList gemmer data inden for den type objekt, der kan være af forskellige slags.
  2. Størrelse på en ArrayList vokser dynamisk, mens Array-størrelse forbliver statisk i hele programmet.
  3. Indsættelse og sletning i ArrayList er langsommere end en Array.
  4. Arrays er kraftigt maskinskrevne, mens ArrayLists ikke er magtfulde maskinskrevne.
  5. Arrays hører til System. Array-navneområde, hvorimod ArrayList hører til System. Samlingens navneområde.
  6. Når du har valgt mellem Array og ArrayList, skal du vælge ideen om deres muligheder, som du bare har brug for at implementere.

C # Array vs List Sammenligningstabel

Nedenfor er den øverste sammenligning mellem C # Array vs List

S.No.

Array

Liste

1Arrays er kontinuerlige i hukommelsen, hvilket gør det udmattende (i en ydeevne forstand) at indsætte dele i midten af ​​listen. Fordelen er, at muligheden for at udføre tilfældig adgang.Lister på den modsatte side er dele, der udfolder sig om i hukommelsen, link sammen. Dette muliggør en enkelt indsættelse på listen, dog tilfældig adgang, mens ikke yderligere datastrukturer ikke er mulig.
2Et array kan være et system, det er at nævne, det er en særlig tilgang til at organisere data i hukommelsesenheden.En liste er en abstrakt datatype, det vil sige, det er enhver datastruktur, der understøtter en bestemt gruppe af operationer.
3En matrix er en samling af homogene dele.En liste er en samling af heterogene elementer.
4Tildelt arrayhukommelse er statisk og kontinuerlig.Den tildelte hukommelse på listen er dynamisk og tilfældig.
5En bruger behøver ikke at begrænse sporet af næste hukommelsesallokering.En bruger skal begrænse spor til næste placering, hvor hukommelsen tildeles.

Konklusion - C # Array vs List

Vi så en sammenligning af C # Array vs List-brugshukommelsesforbrug inden for C #-sproget. For hastighed er det typisk værd at kunne lide regelmæssige arrays. Resultatresultatet er kritisk.

Lister bruges meget mere normalt i C # end arrays er, men der er nogle tilfælde, hvor matriser vil (eller bør) bruges, sammen med hvis dine data usandsynligt vil vokse markant, eller hvis du håndterer en relativt stor mængde data som normalt skal tvinges til at indekseres.

Lad mig tilbyde dig 2 eksempler af lister, der bryder principperne i en matrix. I en linkliste peger hver del på den efterfølgende del, så jeg vil blot placere en erstatningsdel mellem 2 eksisterende dele, eller fjerne en og fikse de resterende 2 (den forrige og den næste); mens jeg får adgang til dele via et indeks, vil jeg udelukkende gøre dette ved at gå fra en del til at sikre og undersøge, og det er således ikke rigtig indekseret. Et andet eksempel er, at køen, uanset hvor jeg udelukkende vil øge spidsen og tage væk fra begyndelsen; Hvis jeg vil have adgang til dele via et indeks, er det muligt, men jeg er tydeligvis ikke forbehandlet med den rigtige abstrakte datasort. Det betyder ikke noget, om implementeringen blot vil give dette.

Anbefalet artikel

Dette har været en guide til de største forskelle mellem C # Array vs List. Her diskuterer vi også C # Array vs List nøgleforskelle med infografik og sammenligningstabel. Du kan også se på de følgende artikler -

  1. Java-liste eller array-liste
  2. C # interface vs abstrakt klasse
  3. ASP.NET vs C #
  4. Java Vector vs ArrayList

Kategori: