Se afișează postările cu eticheta netbeans. Afișați toate postările
Se afișează postările cu eticheta netbeans. Afișați toate postările

miercuri, 18 septembrie 2019

Prelucrarea tablourilor unidimensionale în Java

Dacă răsfoiți această postare înseamnă că doriți să studiați care este modalitatea de lucru cu masivele în Java. Vă doresc succes și sper că această postare o să vă fie utilă! 

Ce sunt vectorii?
Un vector, tablou, masiv unidimensional sau array reprezintă un container pentru un număr de elemente de același tip, fiecare element fiind indexat de un număr. În limbajul Java vectorii sunt obiecte, tipul acestora fiind referință.

Vectorii sunt de 2 tipuri:
ü  cu lungime fixă – dimensiunea  vectorului este stabilită la crearea acestuia și nu poate fi modificată ulterior. Pentru ei nu există o clasă care se instanţiază  pentru a obține un obiect vector.
ü  cu lungime variabilă – dimensiunea vectorului poate fi modificată pe parcursul rulării programului. Pentru ei există clase Java predefinite ce pot fi instanțiate (de ex.  java.util.Vector, java.util.Arrays, ș.a).

Iată structura unui vector:


După cum observați în figura de mai sus, fiecărui element dintr-un vector îi corespunde un index numeric, cu ajutorul căruia poate fi accesat. Numerotarea elementelor începe întotdeauna de la 0, ceea ce înseamnă că, de exemplu, cel de-al nouălea element va fi accesat de indexul 8.

Cum se folosesc vectorii?
Pentru a folosi un vector este necesar să:
1    .  declarați o variabilă de tip vector care permite referirea la un obiect vector;
2    .  construiți obiectul vector specificându-i dimensiunea, adică numărul de elemente ce îl poate stoca;
3    .  accesați elementele vectorului cu ajutorul variabilei de tip vector cu scopul de a le atribui valori sau a obține valorile acestora.

Cum se declară variabila de tip vector?
Variabila de tip vector se declară în felul următor:       tip [] nume;
unde 
-        tip indică tipul de date al elementelor conținute de vector;
-        parantezele pătrate sunt simboluri speciale ce indică ca variabila respectivă este un vector;
-        nume  fiind identificatorul variabilei vectorului;

Ca şi în cazul altor tipuri de variabile, declararea nu creează de fapt un vector, dar pur şi simplu anunță compilatorul că variabila respectivă va deține un vector de tipul specificat. Deci, la această etapă vectorul nu poate fi utilizat.
Exemple:
         byte[] anArrayOfBytes;
short[] anArrayOfShorts;
double[] anArrayOfDoubles;
boolean[] anArrayOfBooleans;
char[] anArrayOfChars;
String[] anArrayOfStrings;

Cum se crează un vector?
Un vector poate fi creat utilizând operatorul new printr-o construcție de forma:

new tip_vector [dimensiune]; 
unde, tip_vector reprezintă tipul elementelor stocate în vector, iar dimensiune este o expresie de tip întreg pozitivă ce semnifică numărul de elemente ce se vor stoca în vector.
Întreaga construcție va crea un vector de tip tip_vector cu o dimensiune de dimensiune elemente indexate de la 0 la dimensiune-1.
Dacă această instrucțiune ar lipsi, compilatorul ar afișa o eroare asemănătoare celei mai jos și execuția programului ar eșua:    Variable anArray may not have been initialized.
De exemplu:
int [] a;             // se declară variabila a ce conţine referință către un vector cu elemente întregi
a = new int[5];     // se crează un vector cu 5 elemente întregi de același tip cu variabila a 

Formula metalingvistică: Declarație_tablou ::= tip [ ] identificator = new tip [constanta];
Deci restricțiile impuse în lucrul cu masivele unidimensionale în Java sunt: 
  • Dimensiunea tabloului este fixă.

  • Indexarea începe de la 0.

  • Accesul în afara limitelor produce eroare ArrayIndexOutOfBoundsException.

Cum accesăm elementele unui vector?
Fiecare element distinct din vector poate fi accesat ca o variabilă separată printr-o construcție de forma:
nume [index]
unde nume reprezintă numele vectorului ce stochează elementele, iar index este o expresie de tip întreg strict pozitivă ce semnifică poziția elementului care doriți să îl accesați din vectorul dat. Dacă vectorul conține n elemente atunci index trebuie să fie cuprins în intervalul  [0, n-1], în caz contrar o excepție de execuție va fi semnalată.
De exemplu:
int [] a;                // se declară variabila a ce conţine referință către un vector cu elemente întregi
a = new int[5];     // se crează un vector cu 5 elemente întregi de același tip cu variabila a
a[0] = 23;               // primului element din vector i se atribuie valoarea 23
a[4] = 10;             // ultimului element din vector i se atribuie valoarea 10
a[5] = 9;              // excepție generată! Indexul nu se află în diapazonul [0,4]
Alternativ, poate fi creat și inițializat un vector în felul următor:
int[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
În acest caz, lungimea vectorului este determinată de numărul de valori furnizate între acolade.


Cum se determină dimensiunea unui vector ?
Fiecare vector conține, pe lîngă elemente, o variabilă de instanță publică ce nu poate fi modificată numită length ce stochează numărul de elemente în vector. Prin urmare accesând această variabilă putem obține lungimea unui vector.
Exemplu:
double[] v;
v = new double[5];
System.out.println(v.length);      // se va afișa valoarea 5