C#-s on massiiv ja ArrayList teadaolevalt enimkasutatavad andmetüübid. Massiiv on C# programmeerimiskeele peamine funktsioon, samas kui C# keeles ArrayList on kogum.
Võtme tagasivõtmine
- ArrayList on dünaamiline, muudetava suurusega kogu, mis võib salvestada mis tahes andmetüüpi elemente, kohandades nende suurust automaatselt elementide lisamisel või eemaldamisel. Väärtustüüpide pakkimise ja lahtipakkimise tõttu võib sellel olla aga jõudluskulu.
- Massiivid C#-s on fikseeritud suurusega, tugevasti trükitud kogud, mis võivad salvestada kindlat andmetüüpi elemente, pakkudes paremat jõudlust, kuna on välistatud kastimine ja lahtipakkimine, kuid nõuavad lähtestamisel etteantud suurust.
- Peamine erinevus ArrayListi ja Array vahel C#-s on paindlikkus ja tüüpide ohutus, kuna ArrayList pakub mitme andmetüübi dünaamilist suuruse muutmist ja salvestamist. Seevastu massiivid tagavad parema jõudluse ja tüübiohutuse, kuid neil on fikseeritud suurus.
ArrayList vs massiiv C#-s
ArrayList on dünaamiline loend objektidest, mis võivad kasvada või kahaneda, samas kui massiivi suurus on fikseeritud. ArrayListil on meetodid andmetega manipuleerimiseks, näiteks elementide lisamiseks või eemaldamiseks, samas kui massiivi suurust tuleb käsitsi muuta. ArrayList saab salvestada erinevat tüüpi andmetüüpe elemente, massiiv aga sama tüüpi andmetüüpe.
ArrayListi andmetele juurdepääsuks tuleb need objekti abil silmusesse seada, samas kui massiivi puhul saate võimalik neile hõlpsasti juurde pääseda ilma esemeteta.
Võrdlustabel
Võrdluse parameeter | ArrayList | Array |
---|---|---|
KASUTUSALA | ArrayList on mitteüldine tüüpi | Massiiv on tugevasti trükitud. Salvestada saab ainult sama andmetüübi väärtusi. |
Elementide arv | See on dünaamiline, seega saab salvestada mis tahes arvu andmetüüpe | Lisada saab ainult kindla arvu elemente. |
jõudlus | See halvendab jõudlust, kuna kasutatakse poksimist ja lahtipakkimist. | Sellel on parem jõudlus. |
NULL väärtus | See võib aktsepteerida NULL väärtust | See pole nii |
klass | See kasutab staatilist klassi | See kasutab nimeruumi süsteemi. kogumine |
Mis on ArrayList C#-s?
Massiiviloendid lähtestatakse loendi liidese abil. Seda peetakse üheks kõige paindlikumaks C#-i andmeteks. Programmeerimiskeelte kogu on eriklass, mis salvestab andmed ja võimaldab programmeerijatel neid hankida.
- ArrayListil pole fikseeritud suurust, mälumaht on dünaamiline ja saate seda soovi korral muuta. Kui kodeerija on käivitanud mälu 4 elemendi jaoks, saab lisada veel ühe elemendi.
- Massiiviloendis suurendatakse suurust 2^n väärtusega. Samuti on ArrayList mitteüldine, mis võimaldab meil salvestada erinevat tüüpi andmetüüpe.
- Mõned ArrayListi põhifunktsioonid on RemoveAt(), Remove(), Insert() ja Add().
- Samuti saab see salvestada nullelemendi.
Näide
Süsteemi kasutamine. kogumine;
ArrayList a = new ArrayList();
a.add(1, "tere");
a.add(4);
a.add(8.23);
a.add(null);
Mõnda funktsiooni kasutatakse ArrayListis salvestatud andmetega suhtlemiseks.
- Add(): seda kasutatakse elementide lisamiseks loendisse ArrayList.
- Insert (): seda kasutatakse elementide lisamiseks ArrayListi konkreetse indeksi juurde.
- Remove(): seda kasutatakse üksiku elemendi eemaldamiseks,
- RemoveAt(): see eemaldab konkreetsed elemendid massiiviloendist.
Mis on massiiv C#-s?
Massiiv on andmetüüp, milles programmeerija saab salvestada sama tüüpi ja fikseeritud pikkusega andmeid. Pikkuse ja andmete väärtust ei saa käitusaja jooksul muuta. Kõigile massiivi elementidele antakse indeksi väärtused ja massiivi indeks on null.
Seega on vaikeväärtus massiivi esimese elemendi indeksi null. The süntaks massiivi deklareerimiseks ja määratlemiseks C#-s on järgmine. Kuna massiiv on võrdlusandmetüüp, eraldatakse selle mälu kuhja mällu.
Int[] massiiv = uus int[] { 10,20,30,40};
10 20 30 40 andmed
0 1 2 3 Indeksid
Mõned olulised punktid massiivide kohta.
- Massiivi suurus on fikseeritud ja see on tugevasti trükitud. see tähendab, et kui teete näiteks täisarvu väärtuste massiivi, siis ei saa stringe salvestada.
- Kuna andmete lahtipakkimist või pakkimist ei toimu, toimib see paremini.
Peamised erinevused ArrayListi ja Array vahel C#-s
- Massiivi suurus on fikseeritud ja sisaldab kõigi sama tüüpi elementide järjestikust kogumit. Massiiviloendi suurus ei ole fikseeritud ja suureneb koos 2^n-ga.
- Massiivi mõõde ja iga mõõtme pikkus lähtestatakse massiivi loomisel. Massiivi pikkuse väärtuse muutmine käitusajal on võimatu. ArrayListi puhul saab massiiviloendi pikkuse väärtust dünaamiliselt muuta.
- Massiivi esimese elemendi indeks on 0 ja viimase elemendi indeks on n-1, kus n on massiivi suuruse pikkus.
- ArrayList sisaldab erinevat tüüpi andmetüüpe elemente, massiiv aga sarnaste andmetüüpide andmeid. Näiteks kui massiiv on täisarvu tüüpi, siis saab massiivi salvestada ainult täisarve.
- Massiiv on tugevasti trükitud andmetüüp ja selle tõhusus on parem kui ArrayList. Kuna Arraylistis on vaja lahti pakkida ja poksida, on see vähem tõhus.
- ArrayListi suurus suureneb automaatselt; seega peate andma mis tahes suuruse.
- ArrayList klass (System.Collections) | Microsoft Docs
- https://www.itu.dk/research/c5/latest/ITU-TR-2006-76.pdf
Viimati värskendatud: 11. juunil 2023
Sandeep Bhandaril on arvutite bakalaureusekraad Thapari ülikoolist (2006). Tal on 20-aastane kogemus tehnoloogia vallas. Ta tunneb suurt huvi erinevate tehnikavaldkondade, sealhulgas andmebaasisüsteemide, arvutivõrkude ja programmeerimise vastu. Tema kohta saate tema kohta rohkem lugeda bio-leht.
Kuigi võrdlus on arusaadav, arvan, et artikkel ei süvene ArrayListi ja Array vahel valides võimalikesse kompromissi.
Alati on oluline kaaluda erinevate andmetüüpide plusse ja miinuseid ning see oleks sellele artiklile väärtuslik täiendus.
Nõustun, nende kahe vaheliste kompromisside sügavam uurimine annaks artiklile sügavust juurde.
Informatiivne artikkel! Mul on alati olnud raskusi massiivi ja ArrayListi erinevuste mõistmisega, kuid see selgitas seda suurepäraselt.
See on suurepärane, kui keerulisi mõisteid selgitatakse otsekoheselt. Ma leidsin, et see artikkel oli samuti väga kasulik.
Kuigi erinevuste mõistmine on oluline, arvan ka, et on oluline teada, millal kasutada ArrayListi massiivide asemel ja vastupidi. Kontekst on võtmetähtsusega.
Väga tõsi. Konteksti mõistmine on programmeerimisel hädavajalik ja see artikkel rõhutab seda.
Hindan seda, et artikkel ei too mitte ainult esile erinevusi, vaid pakub ka praktilisi näiteid. See suurendab mõistete mõistmist.
Just praktilised näited panevad teooria ellu. See on selles artiklis suurepärane lähenemine.
Olen nõus, näited hõlbustavad ArrayListi ja Array nüansside mõistmist.
Minu arvates on praktiliste näidete kasutamine artiklis veidi üleliigne. Mõisted on juba ilma nendeta selged.
Ma pole lugupidavalt nõus. Kuigi mõisted võivad teile selged olla, võivad näited tõesti kasulikud olla neile, kes vajavad mõistmisel täiendavat abi.
Suurepärane selgitus erinevuste kohta ArrayListi ja Array vahel C#-s! Hindan nende jõudluse ja paindlikkuse selget võrdlust.
Ma ei saanud rohkem nõustuda. Üksikasjalikud näited aitavad kontseptsiooni tõesti tugevdada.
Võrdlustabel võimaldab hõlpsasti mõista ArrayListi ja Array erinevusi. See formaat on väga tõhus!
Ma ei saanud rohkem nõustuda. Andmete selgest sõnastusest on tõesti abi.
Kindlasti on erinevuste visuaalne kujutamine tohutult kasulik.
Selles artiklis esitatud ArrayListi ja Array üksikasjalikud funktsioonid on väga kasulikud. See on nagu kiirjuhend.
Absoluutselt säästab ArrayListi ja Arrayga töötamisel aega, kui kõik vajalikud funktsioonid on selgelt paika pandud.
ArrayListi ja Array põhjalik võrdlus C#-s on suurepärane, kuid mulle meeldiks näha igaühe praktilisemaid kasutusjuhtumeid.
Nõus, reaalmaailma näidete olemasolu hõlbustaks ArrayListi ja Array parimate rakenduste mõistmist.
Arvan, et reaalse maailma stsenaariumid rikastaksid kindlasti selle artikli sisu ja muudaksid selle veelgi kasulikumaks.
Ma ei nõustu parema jõudluse tõttu massiivide eelistamisega ArrayListile. ArrayListi paindlikkus võib teatud olukordades olla hindamatu.
Ma arvan, et nii massiividel kui ka ArrayListil on oma tugevad ja nõrgad küljed ning oluline on arvestada iga programmeerimisülesande spetsiifilisi nõudeid.
Ma näen teie mõtet, kuid on ka juhtumeid, kus massiivide fikseeritud suurus on sobivam. Kõik sõltub töö jaoks sobiva tööriista valimisest.