Wat is Dynamic Array in Java?



De dynamische array in Java is een type array met een enorme verbetering voor het automatisch vergroten of verkleinen. De enige beperking van arrays is dat het een vaste grootte heeft.

Arrays in zijn homogene datastructuren die in Java als objecten zijn geïmplementeerd. Arrays slaan een of meer waarden van een specifiek gegevenstype op en bieden geïndexeerde toegang om hetzelfde op te slaan. Een specifiek element in een array is toegankelijk via zijn index. In dit artikel bespreken we Dynamic Array in Java in de volgende volgorde:

Inleiding tot Dynamic Array in Java

De dynamische array is zo'n type array met een enorme verbetering voor het automatisch vergroten of verkleinen. De enige beperking van arrays is dat het een vaste grootte heeft. Dit vertaalt zich in een betekenis dat u alleen het aantal elementen kunt specificeren dat uw array van tevoren kan bevatten. Aan de andere kant kunnen de dynamische arrays worden uitgebreid naarmate we meer elementen in realtime toevoegen. Daarom hoeft de codeur de grootte van de array niet van tevoren te bepalen. Het heeft nog een paar sterke punten:





  • Snel opzoeken . Hetzelfde als net als bij arrays, wanneer het ophalen van het element bij een bepaalde index O (1) tijd kost.



  • Variabele maat . We kunnen zoveel elementen invoegen als we willen en een dynamische array wordt dienovereenkomstig uitgebreid om ze vast te houden.

  • Cachevriendelijk . Net als bij arrays kunnen dynamische arrays items naast elkaar in het geheugen plaatsen, waardoor caches efficiënt worden gebruikt.



Er zijn enkele nadelen aan het gebruik van dynamische arrays in onze code. Hoewel we in de meeste toepassingen meer dan wat dan ook dynamische arrays gebruiken, zijn er enkele gevallen waarin ze vanwege hun beperkingen niet de meest geprefereerde keuze worden.

ga naar functie in python
  • Langzaam worst-case wordt toegevoegd . Normaal gesproken, terwijl de toevoeging van een nieuw element aan het einde van een dynamische array, het O (1) in één keer kost. Als de dynamische array echter geen indices meer heeft voor een nieuw item, moet deze worden uitgebreid, waarvoor O (n) tegelijk nodig is.

  • Kostbare invoegen en verwijderen. Net als bij arrays worden de elementen naast elkaar opgeslagen. Dus terwijl u een item in het midden van een array toevoegt of verwijdert, moet u op andere elementen drukken, waarvoor O (n) tegelijk geldt.

De onderstaande diagrammen laten zien hoe de arrays in realtime werken en laten zien hoe de elementen zijn gestapeld. Het laat ook zien hoe de instructies veranderen voor een gemiddeld geval en het slechtste geval van arrayfuncties.

array sorteren c ++

array - dynamische array in java - edureka

Grootte versus capaciteit

Wanneer we een dynamische array initialiseren, creëert de implementatie van de dynamische array een begrepen array met een vaste grootte. De initiële grootte komt overeen met de uitvoering. Laten we bijvoorbeeld onze implementatie-array maken om 10 indices te gebruiken. Nu voegen we vier items toe aan onze dynamische array. Nu heeft onze dynamische array een lengte van vier. Onze onderliggende array heeft echter een lengte van 10. Daarom zouden we kunnen zeggen dat de grootte van de dynamische array vier is en de capaciteit 10. Een dynamische array slaat een specifieke eindindex op om het eindpunt van de dynamische array en het beginpunt bij te houden. punt vanwaar de extra capaciteit begint.

Verdubbeling voegt toe

Er kunnen gevallen zijn waarin we proberen een item toe te voegen aan een array waarvan de capaciteit al vol is. Als u dynamische arrays in de ruimte wilt maken, wordt automatisch een nieuwe, grotere en onderliggende array gemaakt. Meestal wordt het twee keer zo groot om eventuele nieuwe toevoegingen aan te kunnen, die het niet eerder had verwacht. Daarom kost het kopiëren van elk item geen tijd. Telkens wanneer u een item aan onze dynamische array toevoegt, wordt automatisch een nieuwe onderliggende array van dubbele grootte gemaakt, die snel kan worden toegevoegd.

Een element verwijderen

Bij het verwijderen van een element uit een array, verwijdert de standaard 'remove ()' - methode een element van het einde en slaat automatisch nul op bij de laatste index. Het zal ook elementen op een specifieke index verwijderen door de methode removeAt (i) aan te roepen, waarbij 'I' index is. De methode removeAt (i) verschuift alle rechterelementen aan de linkerkant van de opgegeven index.

typ casting in java met voorbeeld

Het formaat van een array wijzigen

Wanneer arrays geen data aan de rechterkant van de array hebben die dan onnodig geheugen in beslag nemen, maakt de methode srinkSize () extra geheugen vrij. Wanneer alle slots zijn verbruikt en extra elementen zijn toegevoegd, moet de onderliggende array met een vaste grootte groter worden. Het daadwerkelijke formaat wijzigen is duur, omdat we een grotere array moeten toewijzen en alle elementen moeten kopiëren van een array die je overwoekerd hebt, voordat het eindelijk een nieuw item kan toevoegen.

Hieronder ziet u een voorbeeld van een programma waarbij de array-grootte vol wordt en nieuwe elementen worden gekopieerd naar een nieuwe array met dubbele grootte. Het element dat een stringelement is genaamd 'Mahavir' is een aanvulling op de toch al volledige reeks van maat 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main (String args []) {Scanner sc = nieuwe Scanner (System.in) System.out.println (' Voer de grootte van de array :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Enter elements of the array (Strings) :: ') voor (int ik = 0 ik

Uitgang:

Hiermee komen we aan het einde van het artikel Dynamic Array in Java. Ik hoop dat je een idee hebt gekregen van hoe je met dynamische arrays kunt werken.

Bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java-ontwikkelaar willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel de kern als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van deze 'Dynamic Array in Java' -blog en we nemen zo snel mogelijk contact met u op.