Forskel mellem arrays og arraylists

Arrays vs arraylists

Arrays er den mest almindeligt anvendte datastruktur til lagring af en samling af elementer. De fleste programmeringssprog indeholder metoder til let at deklarere arrays og adgangselementer i arrays. En arraylist kan ses som en dynamisk matrix, der kan vokse i størrelse. På grund af denne grund behøver programmereren ikke at vide størrelsen på arraylisten, når hun definerer den.

Hvad er Arrays?

I figur 1 vises et stykke kode, der typisk bruges til at erklære og tildele værdier til en matrix. Figur 2 viser, hvordan en matrix ville se ud i hukommelsen.

int-værdier [5];

værdier [0] = 100;

værdier [1] = 101;

værdier [2] = 102;

værdier [3] = 103;

værdier [4] = 104;

Figur 1: Kode til angivelse og tildeling af værdier til en matrix


100 101 102 103 104
Indeks: 0 1 2 3 4

Figur 2: Array gemt i hukommelsen

Ovenfor kode definerer en matrix, der kan gemme 5 heltal, og de fås adgang til ved hjælp af indekser 0 til 4. En vigtig egenskab ved en matrix er, at hele matrix er tildelt som en enkelt hukommelsesblok, og hvert element får sin egen plads i arrayet . Når en matrix er defineret, er dens størrelse fast. Så hvis du ikke er sikker på størrelsen på matrixen på kompileringstidspunktet, bliver du nødt til at definere en stor nok matrix til at være i den sikre side. Men de fleste af de gange bruger vi faktisk mindre antal elementer, end vi har tildelt. Så en betydelig mængde hukommelse spildes faktisk. På den anden side, hvis det "store nok array" faktisk ikke er stort nok, ville programmet gå ned.

Hvad er arraylister?

En arraylist kan ses som en dynamisk matrix, der kan vokse i størrelse. Derfor er arraylister ideelle til at blive brugt i en situation, hvor du ikke kender størrelsen på de elementer, der kræves på erklæringstidspunktet. I Java kan arraylister kun indeholde objekter, de kan ikke indeholde primitive typer direkte (du kan placere de primitive typer inde i et objekt eller bruge indpakningsklasserne til de primitive typer). Generelt er arraylister forsynet med metoder til at udføre indsættelse, sletning og søgning. Tidskompleksitet ved adgang til et element er o (1), mens indsættelse og sletning har en tidskompleksitet på o (n). I Java kan arraylister krydse ved hjælp af foreach-løkker, iteratorer eller blot ved hjælp af indekserne.

Hvad er forskellen mellem Arrays og Arraylists

Selvom matriserne og arraylisterne er ens i den forstand, at begge af dem bruges til at gemme samlinger af elementer, er de forskellige i, hvordan de er defineret. Størrelsen på matrixen skal angives, når en matrix er defineret, men du kan definere en arraylist uden at vide den aktuelle størrelse. Du kan føje elementer til en arraylist, når den er defineret, og dette er ikke muligt med arrays. Men i Java kan arraylister ikke indeholde primitive typer, men arrays kan bruges til at indeholde primitive typer. Men hvis du har brug for en datastruktur, der kan variere dens størrelse, ville arraylist være det bedste valg.