Skillnaden mellan C # Array vs List

C # Array vs List är överallt där abstraktion och implementering av datorer i datorer möts. En matris är otroligt mycket knuten till hårdvarubegreppet kontinuerligt, sammanhängande minne, med varje del identisk i storlek (även om dessa delar vanligtvis är adresser, och så prata med referenser som inte är identiskt stora). En lista kan vara en idé (från aritmetik till en viss utsträckning) varhelst delar beställs och vart som helst (normalt) en start och finish, och där det är möjligt att indexera. Dessa två idéer stämmer ganska bra. Men när vi överväger en lista som en abstrakt datasortering, en strategi för åtkomst och manipulering av data, kan vi bryta ett antal av dessa regler.

Vad är en matris?

En matris kan vara ett sekventiellt sortiment av jämförbara data som kommer att nås enligt "indexet". Det är den bästa stilen i ett system under vilket vädret får hålla sig i en sammanhängande minnesplats.

I Array börjar indexet på noll, så för att få tillgång till den primära delen av En matris "numarray", borde det skrivas som numarray (0).

En matris kan vara ett på varandra följande avsnitt av minnet som upptar n * storlek (typ) byte, varhelst n är att längden på matrisen och storleken (typen) är den storleken i minnet som behövs för att lagra den informationssortering du fortsätter med användning inom matrisen. Detta antyder att om du vill bilda en matris med hundra ints och varje intag har fyra byte, kan du behöva tvingas att ha ett oanvänt minnesavsnitt på minst fyra hundra byte (100 * 4). Detta innebär dessutom att matrisen är ganska billig att forma, släppa loss och använda som ett resultat av deras bitar av minne.

Arrayalternativ: -

  • Info lagras i en typ av kontinuerliga minnesallokeringar. varje halva följer olika helt enkelt när det är inom m / y. det finns ingen slumpmässighet i tilldelningen.
  • De ger slumpmässig åtkomst som arr (0), arr (6) etc.
  • Det finns en statisk allokering av minne. n detta kan leda till slöseri med minnet.
  • Det finns bara en typ av data i varje cell i en matris.
  • Insättning och radering är lite längre intensiv.

Vad är en lista?

ArrayList kan vara ett sortiment av objekt av samma eller olika typer. Måtten på en ArrayList är dynamiskt uppblåst eller snittad efter behov. Det fungerar som en matris, men till skillnad från en matris i ArrayList är saker dynamiskt tilldelade eller omlokaliserade, dvs du lägger till, ta bort, indexera eller jaga efter data i ett mycket sortiment.

En lista men kan vara en helt annan struktur. De flesta listimplementeringar är en blandning av noder som lagrar: en. - Ett pris och, 2. - En eller många pekare som håller noderna anslutna mellan dem. Detta antyder att du bara inte vill ha en enorm bit med tillgängligt minne med en storlek som är tillräckligt stor för att bära alla dina data, eftersom noderna är spridda genom ditt minne.

Listalternativ: -

  • Informationen förvaras slumpmässigt i komponenter. n var hälften är ansluten till olika via en pekare till nästa cell (n till den föregående cellen bara för dubbel länklista)
  • De ska nås i tur och ordning tack vare beroendet av varje halvlek
  • Det tilldelas dynamiskt som är m / y tilldelas varje cell en gång processbegäran för det. Därför finns inget avfall från m / y
  • En enda cell är uppdelad i flera komponenter som alla har information av olika datasorter. Men det sista måste i huvudsak vara pekaren till en efterföljande cell
  • Insättning och radering är mycket lättare och snabbare. Att se ut är också lättare.

Head to Head Jämförelse mellan C # Array vs List

Nedan visas topp 5-skillnaden mellan C # Array vs List

Nyckelskillnaden mellan C # Array vs List

Som du ser finns det många skillnader mellan C # Array vs List-prestanda. Låt oss titta på den bästa jämförelsen mellan C # Array vs Lista nedan -

  1. Array lagrar data av samma sort medan ArrayList lagrar data inom typen av objekt som kan vara av olika slag.
  2. Storleken på en ArrayList växer dynamiskt medan Array-storleken förblir statisk under hela programmet.
  3. Insättning och radering i ArrayList är långsammare än en Array.
  4. Matriser är kraftfullt skrivskrivna medan ArrayLists inte är kraftfullt skrivna.
  5. Matriser tillhör System. Array-namnutrymme medan ArrayList tillhör System. Samlingens namnområde.
  6. När du väljer mellan Array och ArrayList väljer du idén om deras alternativ som du bara behöver implementera.

C # Array vs List Jämförelsetabell

Nedan är den bästa jämförelsen mellan C # Array vs List

S.No.

Array

Lista

1Matriser är kontinuerliga i minnet, vilket gör det utmattande (i prestationsmässig mening) att infoga delar i mitten av listan. Fördelen är att möjligheten att utföra slumpmässig åtkomst.Listor, tvärtom, är delar som utspelas om i minnet, länka med. Detta möjliggör enkel inläggning i listan, men slumpmässig åtkomst medan inga ytterligare datastrukturer inte är möjliga.
2En matris kan vara ett system, det vill säga, det är en särskild strategi för att organisera data i minnesenheten.En lista är en abstrakt datatyp, det vill säga att det är vilken datastruktur som stöder en specifik grupp av operationer.
3En matris är en samling av homogena delar.En lista är en samling heterogena element.
4Tilldelat matrisminne är statiskt och kontinuerligt.Listminnet som tilldelats är dynamiskt och slumpmässigt.
5En användare behöver inte begränsa reda på nästa minnesallokering.En användare måste begränsa spårning av nästa plats där minnet tilldelas.

Slutsats - C # Array vs List

Vi såg en jämförelse av C # Array vs List prestandaminnesanvändning inom C # -språket. För hastighet är det vanligtvis värt att gilla vanliga matriser. Prestationsvinsterna är avgörande.

Listor används mycket mer vanligt i C # än matriser är, men det finns vissa fall där matriser kommer (eller borde) användas, tillsammans med om dina uppgifter sannolikt inte kommer att växa betydligt eller om du hanterar en relativt stor mängd data som måste tvingas att indexeras vanligtvis.

Låt mig erbjuda dig två exempel på listor som bryter principerna för en matris. I en länklista pekar varje del på efterföljande del, så jag kommer helt enkelt att placera en ersättningsdel mellan två befintliga delar, eller ta bort en och fixa de två återstående (den föregående och nästa); Medan jag kommer åt delar via ett index, kommer jag enbart att göra detta genom att gå från en del till att säkerställa och undersöka, och det är därför inte riktigt indexerat. Ett annat exempel är att kön, där jag bara kommer att öka spetsen och ta bort från början; Om jag vill få tillgång till delar via ett index kan det göras, men jag är uppenbarligen inte felbehandlat korrekt abstrakt datasortering. Det spelar ingen roll om genomförandet skulle ge detta helt enkelt.

Rekommenderad artikel

Detta har varit en guide till de bästa skillnaderna mellan C # Array vs List. Här diskuterar vi också C # Array vs List viktiga skillnader med infografik och jämförelsetabell. Du kan också titta på följande artiklar -

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

Kategori: