Ce este matricea dinamică în Java?



Matricea dinamică din Java este un tip de matrice cu o îmbunătățire imensă pentru redimensionarea automată. Singura limitare a matricilor este că este o dimensiune fixă.

Matrice în sunt structuri de date omogene implementate în Java ca obiecte. Tablourile stochează una sau mai multe valori ale unui anumit tip de date și oferă acces indexat pentru a le stoca. Un element specific dintr-o matrice este accesat de indexul său. În acest articol, vom discuta despre matricea dinamică în Java în următoarea succesiune:

Introducere în Dynamic Array în Java

Matricea dinamică este un astfel de tip de matrice cu o îmbunătățire imensă pentru redimensionarea automată. Singura limitare a matricilor este că este o dimensiune fixă. Acest lucru se traduce printr-o semnificație pe care o puteți specifica doar numărul de elemente pe care matricea dvs. le poate păstra înainte de timp. Pe de altă parte, matricile dinamice se pot extinde pe măsură ce adăugăm mai multe elemente în timp real. Prin urmare, codificatorul nu trebuie să determine din timp dimensiunea matricei. Are și alte câteva puncte forte:





  • Căutare rapidă . La fel ca la fel ca matricele, atunci când extrageți elementul la un indice dat, necesită timp O (1).



  • Dimensiune variabilă . Putem insera câte elemente dorim și o matrice dinamică se va extinde în consecință pentru a le menține.

  • Cache-friendly . Similar cu matricele, matricele dinamice pot pune elementele una lângă alta în memorie, făcând astfel o utilizare eficientă a cache-urilor.



Există unele dezavantaje ale utilizării matricilor dinamice în codul nostru. Deși, folosim matrici dinamice mai mult decât orice face în majoritatea aplicațiilor, există unele cazuri în care acestea nu devin cea mai preferată alegere datorită limitărilor sale.

python def __init__

  • Se adaugă cel mai rău caz lent . În mod normal, în timp ce se adaugă un element nou la sfârșitul unui tablou dinamic, este nevoie de O (1) într-o singură instanță. Cu toate acestea, dacă matricea dinamică nu mai are indici pentru un element nou, atunci va trebui să se extindă, ceea ce ia O (n) la un moment dat.

  • Inserări și ștergeri costisitoare. Similar cu matricele, elementele sunt stocate adiacente una cu alta. Deci, în timp ce adăugați sau eliminați un element în centrul unui tablou, este nevoie să împingeți alte elemente, ceea ce necesită O (n) la un moment dat.

Diagramele de mai jos arată cum funcționează matricele în timp real și descriu modul în care elementele sunt stivuite. De asemenea, arată cum se schimbă instrucțiunile pentru un caz mediu și cel mai rău caz de funcții matrice.

matrice - matrice dinamică în java - edureka

Mărime vs. Capacitate

Când inițializăm o matrice dinamică, implementarea matricei dinamice creează o matrice de dimensiuni fixe înțelese. Mărimea inițială corespunde implementării. De exemplu, permiteți-ne să realizăm matricea de implementare pentru a utiliza 10 indici. Acum adăugăm patru elemente la matricea noastră dinamică. Acum, matricea noastră dinamică are o lungime de patru. Cu toate acestea, matricea noastră subiacentă are o lungime de 10. Prin urmare, am putea spune că dimensiunea matricei dinamice este de patru și capacitatea sa este 10. O matrice dinamică stochează un index final specific pentru a urmări punctul final al matricei dinamice și de pornire punctul de unde începe capacitatea suplimentară.

Se adaugă dublarea

Pot exista cazuri în care încercăm să adăugăm un articol la o matrice în care capacitatea este deja plină. Prin urmare, pentru a crea matrice dinamice de cameră, se creează automat matrice nouă, mai mare și subiacentă. De obicei, devine de două ori mai mare pentru a face față oricăror noi adăugiri, pe care nu le-a anticipat mai devreme. Prin urmare, copierea fiecărui articol nu consumă timp. Ori de câte ori adăugarea unui articol la matricea noastră dinamică creează automat o nouă matrice subiacentă de două dimensiuni, care se adaugă nu necesită timp.

Ștergerea unui element

În timp ce ștergeți un element dintr-o matrice, metoda implicită „remove ()” elimină un element de la final și stochează automat zero la ultimul index. De asemenea, va șterge elemente de la un anumit index apelând metoda removeAt (i) unde „I” este index. Metoda removeAt (i) deplasează toate elementele potrivite din partea stângă din indexul dat.

Redimensionarea unui tablou

Atunci când matricile nu au date în partea dreaptă a matricei, decât să ia memorie inutilă, metoda srinkSize () eliberează memorie suplimentară. Când toate sloturile sunt consumate și se adaugă elemente suplimentare, matricea subiacentă de mărime fixă ​​trebuie să crească dimensiunea. Redimensionarea reală este costisitoare, deoarece trebuie să alocăm o matrice mai mare și să copiem înainte toate elementele dintr-o matrice pe care ați crescut-o înainte ca aceasta să poată adăuga în cele din urmă un element nou.

Mai jos este un exemplu de program în care dimensiunea matricei devine completă și elementele noi sunt copiate într-o nouă matrice dublă. Elementul care este un element șir numit „Mahavir” este un adaos la gama deja completă de mărimea 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Introduceți dimensiunea tabloului :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Introduceți elementele tabloului (Strings) :: ') pentru (int i = 0 i

Ieșire:

Cu aceasta, ajungem la sfârșitul articolului Dynamic Array in Java. Sper că ți-ai făcut o idee despre cum să lucrezi cu tablouri dinamice.

Verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul de formare și certificare Java J2EE și SOA al Edureka este conceput pentru studenți și profesioniști care doresc să fie dezvoltator Java. Cursul este conceput pentru a vă oferi un început important în programarea Java și pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring

configurarea eclipsei pentru java

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog „Dynamic Array in Java” și vă vom contacta cât mai curând posibil.