Skip to main content

Hvad er en arrayList?

En ArrayList i computerprogrammering er en datastruktur, der opfører sig som en computerarray, men også implementerer muligheden for dynamisk at vokse størrelsen på matrixen efter behov.I modsætning til en iboende array -datatype, som ikke kan ændres under programudførelsen, kan ArrayList -strukturen vokse og skrumpe størrelsen på matrixen som svar på tilføjelsen eller sletningen af elementer.Det har en meget gunstig ydelsesprofil, der giver hurtig tilfældig adgang til dataindsamlingen.Der er dog to tilfælde, hvor det er langsommere end nogle andre datastrukturer, nemlig tilføjelse og fjernelse af elementer fra midten af matrixen.De fleste objektorienterede programmeringssprog har en form for implementering af en sådan liste, selvom de undertiden kaldes dynamiske arrays.

Brug af en ArrayList giver et program mulighed for at få adgang til dataobjekter med et indeksnummer øjeblikkeligt i stedet for at skulle gå igennemEn hel række af data for at finde en adresse, der kræves med sammenkoblede lister.Med evnen til at øge størrelsen på matrixen efter behov er det en meget afbalanceret tilgang, der overvejer både fleksibilitet og hastighed.Når elementer fjernes fra en sådan liste, reduceres størrelsen på matrixen desuden, hvilket frigør hukommelsesrummet.

En fordel ved at bruge en arrayList i forhold til nogle andre datastrukturer er, at et indpakningsobjekt ikke kræves for at indeholde dataenegemt.I tilfælde af en linket liste eller en hash -tabel er der normalt behov for et separat objekt for at opretholde den teknik, der bruges til at holde og manipulere samlingen.Med en ArrayList er den eneste information, der er nødvendig om dataobjekterne, adressen på objektet i hukommelsen.Dette betyder, at der vil være mindre overheadhukommelsesforbrug, når du arbejder med denne type liste.

Et potentielt problem med at bruge en ArrayList kan komme fra implementerings- og hukommelsesstyringssystemet.De fleste arrays tildeles som på hinanden følgende hukommelsessteder.Så for at bruge en arraylist af en bestemt størrelse, skal i det mindste så meget hukommelse være tilgængelig i en uafbrudt række af blokke.Den dynamiske matrix kunne ændre størrelsen på sig selv flere gange, så hukommelsesfragmentering kan forekomme og føre til en hukommelsesallokeringsfejl, stopprogramudførelse.

Udførelsen af en ArrayList svarer til at bruge en standardarray, selvom adgangstider er lidt langsommere, fordiArrayet er indkapslet i et objekt.Et tilfælde, hvor en dynamisk matrix kan bremse dramatisk, afhængigt af implementeringen, er, når størrelsen på matrixen skal ændres.Dette kan involvere kopiering af den aktuelle matrix til en ny matrix, der blev tildelt den nye ønskede størrelse, hvilket forårsager en midlertidig nedbrydning i ydelsen.Det samme problem kan opleves, når man tilføjer eller fjerner et element fra midten af listen, hvilket får alle følgende elementer til at blive flyttet til et nyt sted.