Mikä on Dynamic Array Java-sovelluksessa?



Javan dynaaminen taulukko on eräänlainen matriisi, jossa on valtava parannus automaattiseen koon muuttamiseen. Matriisien ainoa rajoitus on, että se on kiinteä koko.

Taulukot sisään ovat homogeenisia tietorakenteita, jotka on toteutettu Javassa kohteina. Taulukot tallentavat yhden tai useamman tietyn tietotyypin arvon ja tarjoavat indeksoidun pääsyn saman tallennukseen. Matriisin tiettyyn elementtiin pääsee sen hakemistosta. Tässä artikkelissa käsitellään Java-sovelluksen dynaamista taulukkoa seuraavassa järjestyksessä:

Johdanto Dynamic Array Java -ohjelmaan

Dynaaminen taulukko on sellainen matriisityyppi, jossa on valtava parannus automaattiseen koon muuttamiseen. Matriisien ainoa rajoitus on, että se on kiinteä koko. Tämä tarkoittaa sitä, että voit määrittää vain niiden elementtien määrän, joita matriisiisi voi pitää etukäteen. Toisaalta dynaamiset taulukot voivat laajentua, kun lisäämme lisää elementtejä reaaliajassa. Siksi kooderin ei tarvitse määrittää taulukon kokoa etuajassa. Sillä on myös muutama vahvuus:





  • Nopea haku . Sama kuin matriisit, kun elementin hakeminen tietystä hakemistosta, vie O (1) aikaa.



  • Vaihteleva koko . Voimme lisätä niin monta elementtiä kuin haluamme, ja dynaaminen taulukko laajenee vastaavasti pitämään niitä.

  • Välimuistiystävällinen . Samoin kuin taulukot, dynaamiset taulukot voivat laittaa kohteita vierekkäin muistiin, mikä tehostaa välimuistien käyttöä.



Dynaamisten taulukoiden käyttämisessä koodissamme on joitain haittapuolia. Vaikka käytämme dynaamisia matriiseja enemmän kuin mikään useimmissa sovelluksissa, on joissakin tapauksissa, joissa niistä ei tule parhaana vaihtoehtona sen rajoitusten vuoksi.

  • Hitaasti pahimmassa tapauksessa . Normaalisti, kun uuden elementin lisääminen dynaamisen matriisin loppuun, se vie O (1) yhdessä esiintymässä. Jos dynaamisella taulukolla ei kuitenkaan ole enää indeksejä uudelle kohteelle, sitä on laajennettava, mikä vie O (n) kerrallaan.

  • Kallis lisäys ja poisto. Samoin kuin taulukot, elementit tallennetaan vierekkäin. Joten samalla kun lisäät tai poistat kohteen matriisin keskelle, se vaatii muiden elementtien työntämistä, mikä vie O (n) kerrallaan.

Alla olevat kaaviot osoittavat, miten taulukot toimivat reaaliajassa, ja kuvaavat, kuinka elementit on pinottu. Se osoittaa myös, kuinka ohjeet muuttuvat keskimääräiselle tapaukselle ja matalimmalle matriisitoiminnolle.

array - dynaaminen matriisi java - edureka

Koko vs. kapasiteetti

Kun alustamme dynaamisen taulukon, dynaaminen taulukon toteutus luo ymmärretyn kiinteäkokoisen taulukon. Alkuperäinen koko vastaa toteutusta. Tehkäämme esimerkiksi toteutusmatriisi käyttämään 10 indeksiä. Nyt liitämme neljä kohdetta dynaamiseen ryhmäämme. Dynaamisen matriisimme pituus on nyt neljä. Taustalla olevan taulukon pituus on kuitenkin 10. Siksi voimme sanoa, että dynaaminen taulukon koko on neljä ja sen kapasiteetti on 10. Dynaaminen taulukko tallentaa tietyn loppuindeksin dynaamisen taulukon loppupisteen ja alkupään seuraamiseksi. piste, josta ylimääräinen kapasiteetti alkaa.

Tuplaus lisätään

Joissakin tapauksissa yritämme liittää kohteen taulukkoon, jossa kapasiteetti on jo täynnä. Näin ollen dynaamisten huonejoukkojen luominen luo automaattisesti uuden, suuremman ja taustalla olevan taulukon. Yleensä siitä tulee kaksi kertaa suurempi käsittelemään uusia lisäyksiä, joita se ei ennakoinut aiemmin. Siksi jokaisen kohteen kopioiminen ei vie aikaa. Aina kun liität kohteen dynaamiseen taulukkoomme, uusi automaattisesti muodostuu kaksinkertainen kokoinen taulukko, joka ei vie aikaa.

Elementin poistaminen

Poistettaessa elementtiä matriisista oletusarvoinen 'remove ()' -menetelmä poistaa elementin päästä ja tallentaa automaattisesti nollan viimeiseen hakemistoon. Se poistaa myös tietyn indeksin elementit kutsumalla removeAt (i) -menetelmää, jossa I on hakemisto. RemoveAt (i) -menetelmä siirtää kaikki vasemman puolen oikeat elementit annetusta hakemistosta.

Taulukon koon muuttaminen

Kun matriiseilla ei ole taulukon oikealla puolella tietoja, jotka vievät tarpeettoman muistin, menetelmä srinkSize () vapauttaa ylimääräistä muistia. Kun kaikki aikavälit kulutetaan ja lisäelementtejä lisätään, taustalla olevan kiinteäkokoisen taulukon on kasvatettava kokoa. Varsinainen koon muuttaminen on kallista, koska meidän on allokoitava suurempi taulukko ja kopioitava kaikki elementit kasvaneesta taulukosta, ennen kuin se voi lopulta liittää uuden kohteen.

Alla on esimerkki ohjelmasta, jossa taulukon koko täyttyy ja uudet elementit kopioidaan uuteen kaksinkertaiseen kokoon. Elementti, joka on merkkijonoelementti nimeltä 'Mahavir', on lisäys jo täysikokoiseen taulukon kokoon 3.

Tuo java.util.ArrayList Tuo java.util.Arrays Tuo java.util.Scanner julkinen luokka AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Anna taulukon koko :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Enter the array (Strings) :: ') for (int) i = 0 i

Tuotos:

miten tehdä jaavan voimalle

Tämän avulla olemme päässeet Dynamic Array in Java -artikkeliin. Toivon, että sait käsityksen siitä, miten voit työskennellä dynaamisten taulukoiden kanssa.

Katso Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän 'Dynamic Array in Java' -blogin kommenttiosassa, niin otamme sinuun yhteyttä mahdollisimman pian.