Što je Dynamic Array u Javi?



Dinamički niz u Javi vrsta je niza s velikim poboljšanjem za automatsko mijenjanje veličine. Jedino ograničenje nizova je što je fiksne veličine.

Nizovi u su homogene strukture podataka implementirane u Javi kao objekti. Nizovi pohranjuju jednu ili više vrijednosti određene vrste podataka i pružaju indeksirani pristup za pohranu istih. Određenom elementu niza pristupa se njegovim indeksom. U ovom ćemo članku raspravljati o dinamičkom nizu u Javi u sljedećem slijedu:

Uvod u Dynamic Array u Javi

Dinamički niz je takva vrsta niza s velikim poboljšanjem za automatsko mijenjanje veličine. Jedino ograničenje nizova je što je fiksne veličine. To prevodi u značenje da prije vremena možete odrediti samo broj elemenata koje vaš niz može sadržavati. S druge strane, dinamički nizovi mogu se proširiti dok u realnom vremenu dodajemo više elemenata. Stoga koder ne treba određivati ​​veličinu polja prije vremena. Ima i nekoliko dodatnih prednosti:





  • Brzo traženje . Jednako kao što i nizovima, za dohvaćanje elementa s danim indeksom, potrebno je O (1) vrijeme.



  • Promjenjiva veličina . Možemo umetnuti onoliko elemenata koliko želimo i dinamički niz će se prema tome proširiti kako bi ih zadržao.

  • Prikladno za predmemoriju . Slično kao nizovi, dinamički nizovi mogu stavljati stavke jednu do druge u memoriju, čime se učinkovito koristi predmemorija.



c ++ razvrstavanje brojeva u rastućem redoslijedu

U našem kodu postoje neke nedostatke upotrebe dinamičkih nizova. Iako u većini aplikacija u većini slučajeva koristimo dinamičke nizove, postoje slučajevi u kojima oni ne postaju najpoželjniji izbor zbog svojih ograničenja.

  • Sporo najgori slučaj dodaje se . Uobičajeno, dok dodavanje novog elementa na kraj dinamičkog niza, u jednom trenutku treba O (1). Međutim, ako dinamički niz nema više indeksa za novu stavku, tada će se morati proširiti, što uzima O (n) u isto vrijeme.

  • Skupi umetanje i brisanje. Slično kao nizovi, elementi se pohranjuju jedan pored drugog. Dakle, dok dodajete ili uklanjate stavku u središtu niza, potrebno je guranje ostalih elemenata, što uzima O (n) odjednom.

Dijagrami u nastavku pokazuju kako nizovi rade u stvarnom vremenu i prikazuju kako su elementi složeni. Također pokazuje kako se upute mijenjaju za prosječni slučaj i najgori slučaj funkcije niza.

niz - dinamički niz u javi - edureka

Veličina nasuprot kapacitetu

Kada inicijaliziramo dinamički niz, implementacija dinamičkog niza stvara razumljivi niz fiksne veličine. Početna veličina odgovara implementaciji. Na primjer, napravimo naš niz implementacije da koristi 10 indeksa. Sada u naš dinamički niz dodajemo četiri stavke. Sada je naš dinamički niz duljina četiri. Međutim, naš temeljni niz ima duljinu 10. Stoga bismo mogli reći da je veličina dinamičkog polja četiri, a njegov kapacitet 10. Dinamički niz pohranjuje određeni krajnji indeks za praćenje krajnje točke dinamičkog niza i početne točka odakle počinje dodatni kapacitet.

Udvostručuje se

Mogu biti slučajevi kada pokušavamo dodati stavku u niz gdje je kapacitet već popunjen. Dakle, za stvaranje sobnih dinamičkih nizova automatski se stvara novi, veći i temeljni niz. Obično postaje dvostruko veći za rukovanje bilo kojim novim dodacima, što ranije nije predvidio. Dakle, kopiranje svake stavke ne troši vrijeme. Kad god dodavanje stavke u naš dinamički niz automatski napravi novi temeljni niz dvostruke veličine, za dodavanje ne treba vremena.

Brisanje elementa

Tijekom brisanja elementa iz niza, zadana metoda 'remove ()' uklanja element s kraja i automatski pohranjuje nulu u zadnji indeks. Također će izbrisati elemente u određenom indeksu pozivanjem metode removeAt (i) gdje je 'I' indeks. Metoda removeAt (i) pomiče sve desne elemente s lijeve strane iz zadanog indeksa.

Promjena veličine niza

Kada nizovi nemaju podatke s desne strane niza koji uzimaju nepotrebnu memoriju, metoda srinkSize () oslobađa dodatnu memoriju. Kada se potroše svi utora i dodaju dodatni elementi, temeljni niz fiksne veličine mora povećati veličinu. Stvarna promjena veličine skupa je, jer moramo dodijeliti veći niz i kopirati sve elemente iz niza koji ste prerasli da bi napokon mogao dodati novu stavku.

Ispod je primjer programa u kojem veličina polja postaje puna, a novi se elementi kopiraju u novi niz dvostruke veličine. Element koji je element niza zvan 'Mahavir' dodatak je već punom nizu veličine 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner javna klasa AddingItemsDynamically {public static void main (String args []) {Scanner sc = novi Scanner (System.in) System.out.println (' Unesite veličinu niza :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Unesite elemente niza (Strings) :: ') for (int i = 0 i

Izlaz:

što je pretjerano u strojnom učenju

Ovim smo došli do kraja članka Dynamic Array u Javi. Nadam se da ste dobili ideju kako raditi s dinamičkim nizovima.

Pogledajte Edureka, pouzdana tvrtka za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA namijenjen je studentima i profesionalcima koji žele biti programer Java. Tečaj je dizajniran da vam pruži početnu prednost u Java programiranju i osposobi vas za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'Dynamic Array in Java', a mi ćemo vam se javiti u najkraćem mogućem roku.