Què és Dynamic Array a Java?



La matriu dinàmica de Java és un tipus de matriu amb una gran millora per redimensionar automàticament. L'única limitació de les matrius és que té una mida fixa.

Matrius a són estructures de dades homogènies implementades a Java com a objectes. Les matrius emmagatzemen un o més valors d'un tipus de dades específic i proporcionen accés indexat per emmagatzemar-los. El seu índex accedeix a un element específic d'una matriu. En aquest article, parlarem de la matriu dinàmica a Java en la següent seqüència:

Introducció a Dynamic Array a Java

La matriu dinàmica és un tipus de matriu amb una gran millora per redimensionar automàticament. L'única limitació de les matrius és que té una mida fixa. Això es tradueix en un significat que només podeu especificar el nombre d’elements que la vostra matriu pot contenir abans d’hora. D'altra banda, les matrius dinàmiques es poden expandir a mesura que afegim més elements en temps real. Per tant, el programador no necessita determinar amb antelació la mida de la matriu. També té alguns punts forts més:





  • Cerca ràpida . Igual que les matrius, quan es recupera l'element en un índex determinat, es necessita O (1) temps.



  • Mida variable . Podem inserir tants elements com vulguem i una matriu dinàmica s’ampliarà per mantenir-los.

  • Admet memòria cau . De manera similar a les matrius, les matrius dinàmiques poden posar elements al costat de la memòria, fent així una utilització eficient de les memòries cau.



Hi ha alguns inconvenients en utilitzar matrius dinàmics al nostre codi. Tot i que fem servir matrius dinàmics més que res a la majoria de les aplicacions, hi ha casos en què no es converteixen en l'elecció més preferida a causa de les seves limitacions.

programa d'ordenació de combinació a Java

  • S'afegeix el pitjor dels casos lentament . Normalment, tot i que s’afegeix un element nou al final d’una matriu dinàmica, es necessita O (1) en una instància. Tot i això, si la matriu dinàmica no té més índexs per a un element nou, haurà d’ampliar-se, cosa que necessita O (n) alhora.

  • Insereix i suprimeix costosos. De manera similar a les matrius, els elements s’emmagatzemen un al costat de l’altre. Per tant, mentre afegiu o traieu un element al centre d’una matriu, cal empènyer altres elements, cosa que necessita O (n) alhora.

Els diagrames següents mostren com funcionen les matrius en temps real i mostren com s’apilen els elements. També mostra com canvien les instruccions per a un cas mitjà i el pitjor de les funcions de matriu.

array - array dinàmic a java - edureka

Mida vs. Capacitat

Quan inicialitzem una matriu dinàmica, la implementació de matriu dinàmica crea una matriu de mida fixa entesa. La mida inicial correspon a la implementació. Per exemple, fem la nostra matriu d'implementació per utilitzar 10 índexs. Ara afegim quatre elements a la nostra matriu dinàmica. Ara, la nostra matriu dinàmica té una longitud de quatre. Tanmateix, la nostra matriu subjacent té una longitud de 10. Per tant, podríem dir que la mida de la matriu dinàmica és de quatre i la seva capacitat és de 10. Una matriu dinàmica emmagatzema un índex final específic per fer un seguiment del punt final de la matriu dinàmica i del començament punt des d’on comença la capacitat addicional.

S'acompanya el duplicat

Pot haver-hi casos en què intentem afegir un element a una matriu on la capacitat ja està plena. Per tant, per crear matrius dinàmiques de sala es creen automàticament una nova matriu més gran i subjacent. Normalment, es fa el doble de gran per gestionar qualsevol addició nova, cosa que no preveia abans. Per tant, copiar cada element no consumeix temps. Sempre que afegiu un element a la nostra matriu dinàmica, es crea automàticament una matriu subjacent de doble mida, que no es necessita temps.

Supressió d’un element

Mentre esborra un element d'una matriu, el mètode predeterminat 'remove ()' elimina un element del final i emmagatzema automàticament el zero a l'últim índex. També suprimirà elements d'un índex específic trucant al mètode removeAt (i) on 'I' és índex. El mètode removeAt (i) desplaça tots els elements adequats del costat esquerre de l’índex donat.

Canviar la mida d’una matriu

Quan les matrius no tenen dades al costat dret de la matriu que prenen memòria innecessària, el mètode srinkSize () allibera memòria addicional. Quan es consumeixen totes les ranures i s'afegeixen elements addicionals, la matriu subjacent de mida fixa ha d'augmentar la mida. El canvi de mida real és car, ja que hem d’assignar una matriu més gran i copiar tots els elements d’una matriu que heu crescut abans que finalment pugui afegir un element nou.

A continuació es mostra un exemple de programa en què la mida de la matriu es completa i es copien nous elements a una nova matriu de doble mida. L'element que és un element de cadena anomenat 'Mahavir' s'afegeix a la matriu ja completa de la mida 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner classe pública AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Introduïu la mida de la matriu :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Introduïu els elements de la matriu (Strings) :: ') per a (int i = 0 i

Sortida:

Amb això, arribem al final de l'article Dynamic Array in Java. Espero que tingueu una idea de com treballar amb matrius dinàmics.

Consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate i Spring.

com utilitzar tostring a Java

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc “Dynamic Array in Java” i us respondrem el més aviat possible.