Forskel mellem arrays og arraylister

Anonim

Arrays vs Arraylists

Arrays er den mest anvendte datastruktur til at gemme en samling af elementer. De fleste programmeringssprog giver metoder til nemt at erklære arrayer og adgangselementer i arrays. En arraylist kan ses som et dynamisk array, som kan vokse i størrelse. På grund af denne grund behøver programmøren ikke at vide størrelsen af ​​arraylisten, når hun definerer den.

Hvad er Arrays?

Vises i figur 1, er et stykke kode typisk brugt til at erklære og tildele værdier til en matrix. Figur 2 viser hvordan et array vil 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 at erklære og tildele værdier til en matrix

100 101 102 103 104
Indeks: 0 1 2 < 3 4
Figur 2: Array gemt i hukommelsen

Ovenstående kode definerer et array, der kan lagre 5 heltal, og de er tilgængelige ved hjælp af indekserne 0 til 4. En vigtig egenskab af en matrix er det, hele array er allokeret som en enkelt blok af hukommelse, 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 af ​​arrayet på kompileringstid, skal du definere et stort nok array til at være på den sikre side. Men de fleste gange vil vi faktisk bruge mindre antal elementer, end vi har tildelt. Så en betydelig mængde hukommelse er faktisk spildt. På den anden side, hvis det "store nok array" ikke rent faktisk er stort nok, vil programmet kollidere.

Hvad er arraylister?

En arraylist kan ses som et dynamisk array, som kan vokse i størrelse. Derfor er arraylister ideelle til brug i situationer, hvor du ikke kender størrelsen af ​​de elementer, der kræves på tidspunktet for erklæringen. I Java kan arraylister kun holde objekter, de kan ikke holde primitive typer direkte (du kan sætte de primitive typer inde i et objekt eller bruge primitive typer wrappeklasser). Generelt er arraylister forsynet med metoder til at udføre indsættelse, sletning og søgning. Tidskompleksiteten ved at få adgang til et element er o (1), mens indsættelse og sletning har en tidskompleksitet af o (n). I Java kan arraylister krydses ved hjælp af foreach loops, iteratorer eller blot ved hjælp af indekserne.

Hvad er forskellen mellem Arrays og Arraylists? 999 Selvom arrays og arraylister er ens i den forstand, at de begge er vant til at gemme samlinger af elementer, er de forskellige i, hvordan de defineres. Størrelsen af ​​arrayet skal gives, når et array er defineret, men du kan definere en arraylist uden at vide den faktiske størrelse. Du kan tilføje elementer til en arraylist, efter at den er defineret, og det er ikke muligt med arrays.Men i Java kan arraylister ikke holde primitive typer, men arrays kan bruges til at holde primitive typer. Men hvis du har brug for en datastruktur, der kan variere sin størrelse, ville arraylist være det bedste valg.