Verschil tussen arrays en arraylisten

Anonim

Arrays vs Arraylists

Arrays zijn de meest gebruikte data structuur om een ​​verzameling elementen op te slaan. De meeste programmeertalen bieden methoden om arrays en toegangselementen in de arrays gemakkelijk te verklaren. Een arraylist kan gezien worden als een dynamische array, die in grootte kan groeien. Om deze reden hoeft de programmeur de grootte van de arraylist niet te weten wanneer ze het definieert.

Wat zijn Arrays?

Wordt in figuur 1 getoond, is een stuk code dat typisch gebruikt wordt om waarden te classificeren en toe te wijzen aan een array. Figuur 2 laat zien hoe een array in het geheugen zou lijken.

int waarden [5];

waarden [0] = 100;

waarden [1] = 101;

waarden [2] = 102;

waarden [3] = 103;

waarden [4] = 104;

Figuur 1: Code om waarden te verklaren en toe te wijzen aan een array

100 101 102 103 104
Index: 0 1 2 < 3 4
Figuur 2: Array opgeslagen in het geheugen

Bovenstaande code definieert een array die 5 integers kan opslaan en ze worden gebruikt met behulp van indices 0 tot 4. Een belangrijke eigenschap van een array is dat, hele array is toegewezen als een enkel blok van geheugen en elk element krijgt zijn eigen ruimte in de array. Zodra een array is gedefinieerd, is de grootte ervan vastgezet. Dus als u niet zeker bent van de grootte van de array op compileertijd, dan moet u een groot genoeg array definiëren om in de veilige kant te zijn. Maar meestal gaan we eigenlijk minder elementen gebruiken dan wij toegewezen hebben. Dus een aanzienlijke hoeveelheid geheugen is eigenlijk verspild. Aan de andere kant, als de 'grote genoeg array' niet echt groot genoeg is, zou het programma crashen.

Wat zijn arraylisten?

Een arraylist kan gezien worden als een dynamische array, die in grootte kan groeien. Daarom zijn arraylisten ideaal om te worden gebruikt in situaties waarin u de grootte van de elementen die niet nodig zijn op het moment van de verklaring niet kent. In Java kunnen arraylisten alleen objecten vasthouden, ze kunnen geen primitieve typen rechtstreeks houden (u kunt de primitieve typen binnen een object plaatsen of de wikkelklassen van de primitieve typen gebruiken). Over het algemeen zijn arraylisten voorzien van methoden om invoeging, verwijdering en zoeken uit te voeren. De tijdskomplexiteit van het toegang tot een element is o (1), terwijl invoeging en deletie een tijdskomplexiteit van o (n) heeft. In Java kunnen arraylisten worden overschreden met behulp van foreach loops, iterators of gewoon gebruik maken van de indexen.

Wat is het verschil tussen Arrays en Arraylists

Hoewel de arrays en arraylists vergelijkbaar zijn in die zin dat ze beide worden gebruikt om collecties elementen op te slaan, verschillen ze in hoe ze worden gedefinieerd. De grootte van de array moet worden gegeven wanneer een array is gedefinieerd, maar u kunt een arraylist definiëren zonder de werkelijke grootte te weten. U kunt elementen toevoegen aan een arraylist nadat deze is gedefinieerd en dit is niet mogelijk met arrays.Maar in Java kunnen arraylisten geen primitieve typen bevatten, maar arrays kunnen gebruikt worden om primitieve typen te houden. Maar als u een datastructuur nodig heeft die de grootte kan variëren, zou arraylist de beste keuze zijn.