Forskjellen mellom C # Array vs List

C # Array vs List er hvor abstraksjon og implementering av datamaskiner møtes. En matrise er utrolig mye knyttet til maskinvaren forestillingen om kontinuerlig, sammenhengende minne, med hver del identisk i størrelse (selv om disse delene vanligvis er adresser, og så snakk med referenter som ikke er identisk). En liste kan være en idé (fra aritmetikk til en viss grad) uansett hvor deler er bestilt og hvor det er (normalt) en start og finish, og dermed hvor indeksering er mulig. Disse to ideene stemmer ganske bra. Når vi imidlertid overveier en liste som en abstrakt datasortering, en tilnærming til tilgang til og manipulering av data, er vi i stand til å bryte et antall av disse reglene.

Hva er en matrise?

En matrise kan være et sekvensutvalg av sammenlignbare data som du får tilgang til i henhold til "indeksen". Det er den beste stilen i et system der været får holde seg på et sammenhengende minneplass.

I Array starter indeksen på null, for å få tilgang til den primære delen av En matrise “numarray”, den burde skrevet som numarray (0).

En matrise kan være en påfølgende del av minnet som opptar n * størrelse (type) byte, uansett hvor n er at lengden på matrisen og størrelsen (typen) er den størrelsen i minnet som trengs for å lagre infosorteringen du fremmer til bruk innenfor matrisen. Dette antyder at hvis du ønsker å danne et utvalg av hundre ints, og hvert int. Inntar fire byte, kan det hende du må tvinges til å ha en ubrukt minneseksjon på minimum fire hundre byte (100 * 4). Dette innebærer i tillegg at matrisen er ganske billig å forme, slippe løs og bruke som et resultat av deres biter av minne.

Alternativer for array: -

  • Informasjonen oppbevares i en type kontinuerlige minnetildelinger. hver halvdel følger forskjellig bare når den er innenfor m / y. det er ingen tilfeldigheter i tildelingen.
  • De gir tilfeldig tilgang som arr (0), arr (6) osv.
  • Det er en statisk hukommelsesfordeling. n dette kan føre til sløsing med minnet.
  • Det er bare en datamaskinstil i hver celle i en gruppe.
  • Innlegging og sletting er litt lengre intens.

Hva er en liste?

ArrayList kan være et utvalg av objekter av samme eller forskjellige typer. Dimensjonene til An ArrayList blir dynamisk oppblåst eller skåret etter behov. Det fungerer som en matrise, men i motsetning til en matrise i ArrayList blir ting dynamisk tildelt eller omplassert, dvs. at du vil legge til, fjerne, indeksere eller jakte på data i et veldig utvalg.

En liste, men kan være en helt annen struktur. De fleste listeimplementeringer er en blanding av noder som lagrer: en. - En pris og, 2. - En eller mange pekere som holder knutepunktene koblet mellom seg. Dette antyder at du bare ikke vil ha en enorm del av tilgjengelig minne med en størrelse som er stor nok til å bære alle dataene dine, fordi nodene er spredt gjennom minnet.

Listealternativer: -

  • Informasjonen holdes tilfeldig i komponenter. n hver halvdel er koblet til forskjellige via en peker til neste celle (n til forrige celle bare i tilfelle dobbeltkoblingsliste)
  • De skal nås på rad, takket være avhengigheten av hver halvdel
  • Det er dynamisk tildelt at m / y er tildelt hver celle når prosessforespørsel om det. Dermed er det ingen m / y-svinn
  • En enkelt celle er delt inn i flere komponenter som hver har informasjon av forskjellige datasorter. Imidlertid må den siste i det vesentlige være pekeren til en påfølgende celle
  • Innføring og sletting er mye enklere og raskere. Å se ut er også enklere.

Sammenligning fra head to head mellom C # Array vs List

Nedenfor er topp 5-forskjellen mellom C # Array vs List

Nøkkelforskjellen mellom C # Array vs List

Som du ser er det mange forskjeller mellom C # Array vs List ytelse. La oss se på den øverste sammenligningen mellom C # Array vs liste nedenfor -

  1. Array lagrer data av samme slag, mens ArrayList lagrer data innenfor typen objekt som kan være av forskjellige slag.
  2. Størrelse på en ArrayList vokser dynamisk mens Array-størrelse forblir statisk gjennom hele programmet.
  3. Innføring og sletting av operasjoner i ArrayList er tregere enn en Array.
  4. Arrays er kraftig maskinskrevne, mens ArrayLists ikke er maskinskrevne.
  5. Arrays tilhører System. Array-navneområde mens ArrayList tilhører System. Samlingens navneområde.
  6. Når du har valgt mellom Array og ArrayList, velger du ideen om alternativene du bare trenger å implementere.

C # Array vs List Sammenligningstabell

Nedenfor er den øverste sammenligningen mellom C # Array vs List

S.No.

Array

Liste

1Arrays er kontinuerlige i minnet, noe som gjør det utmattende (i en ytelsesmessig forstand) å sette inn deler i midten av listen. Fordelen er at muligheten til å utføre tilfeldig tilgang.Lister, på motsatt side, er deler som utfolder seg om i minnet, lenke sammen. Dette muliggjør enkel innsetting i listen, men tilfeldig tilgang mens ikke ytterligere datastrukturer ikke er mulig.
2Et utvalg kan være et system, det er å nevne, det er en spesiell tilnærming til å organisere data i minneenheten.En liste er en abstrakt datatype, det vil si at det er hvilken som helst datastruktur som støtter en spesifikk haug med operasjoner.
3En matrise er en samling av homogene deler.En liste er en samling heterogene elementer.
4Array-minne som er tildelt er statisk og kontinuerlig.Tilordnet listeminne er dynamisk og tilfeldig.
5En bruker trenger ikke å begrense oversikten over neste minnetildeling.En bruker må begrense spor til neste sted hvor minnet blir tildelt.

Konklusjon - C # Array vs List

Vi så en sammenligning av C # Array vs List ytelsesminnebruk i C # språket. For hastighet er det vanligvis verdig å like vanlige matriser. Resultatresultatet er kritisk.

Lister brukes mye mer vanligvis i C # enn matriser er, men det er noen tilfeller der matriser vil (eller bør) brukes, sammen med om dataene dine ikke vil vokse betydelig, eller hvis du takler en relativt stor mengde data som må tvinges til å bli indeksert til vanligvis.

La meg tilby deg to eksempler på lister som bryter prinsippene for en matrise. I en lenkeliste peker hver del på den påfølgende delen, og dermed vil jeg ganske enkelt plassere en erstatningsdel mellom 2 eksisterende deler, eller ta bort en og fikse de 2 som er igjen (den forrige og den neste); mens jeg får tilgang til deler via en indeks, vil jeg utelukkende gjøre dette ved å gå fra en del til å sikre og undersøke, og dermed er det ikke indeksert. Et annet eksempel er at køen, uansett hvor jeg bare vil øke spissen og ta bort fra begynnelsen; Hvis jeg vil ha tilgang til deler via en indeks, er det mulig, men jeg er tydeligvis ikke feilbehandlet med riktig abstrakt datasortering. Det har ikke noe å si om implementeringen vil gi dette ganske enkelt.

Anbefalt artikkel

Dette har vært en guide til toppforskjellene mellom C # Array vs List. Her diskuterer vi også C # Array vs List viktige forskjeller med infografikk og sammenligningstabell. Du kan også se på følgende artikler -

  1. Java List eller Array List
  2. C # Interface vs Abstract Class
  3. ASP.NET vs C #
  4. Java Vector vs ArrayList