Tutorial Java – #4.1 Cum se adauga in Java un element nou la un vector existent

2 comments - This post in english

In acest post vedem care este solutia la problema adaugarii unui element nou la un vector existent. Asa cum am vazut in Tutorial Java 6 – #4 Vectori, vectorii reprezinta obiecte prin care se gestioneaza o lista compacta de elemente omogene.

Deoarece lista de elemente reprezinta o zona de memorie compacta in Heap, raspunsul la problema, cum adaugam un element nou este ca NU se poate. Odata construit vectorul, cu un numar finit de elemente, spatiul alocat nu mai poate fi redimensionat.

Deci, nu se mai poate realoca spatiul sau mari spatiul deja alocat. Singura solutie pentru a adauga un element nou la un vector cu n:

  1. definim un nou vector de dimensiune +1;
  2. copiem cele n valori in noul vector;
  3. ultimul element va fi initializat cu noua valoare;
  4. vectorul va fi reinitializat cu adresa noii liste de valori
        //vector initial
        int[] oldArray = {1,2,3,4,5};
 
        //valoare noua
        int newValue = 10;
 
        //construim noul vector
        int[] newArray = new int[oldArray.length + 1];
 
        //copiem valorile existent
        for(int i=0;i < oldArray.length;i++)
            newArray[i] = oldArray[i];
 
        //adaugam valoarea noua
        newArray[newArray.length-1] = newValue;
 
        //copiem referinta noului vector
        //vechiul vector va fi sters de Garbage Collector
        oldArray = newArray;

Dacă programul necesită o mulţime de operaţiuni de adaugare, este mai bine să se utilizeze o structură de date care este mai eficient la adăugarea sau eliminarea de elemente. În Java, acest lucru ar putea fi colectia ArrayList (mai multe despre colecţiile într-un post nou – Tutorial Java 6 – Cuprins)