Vectori
Crearea unui vector
- Declararea vectorului Tip[] numeVector; sau
Tip numeVector[];
Ex: int[] intregi;
String adrese[];- Instantierea
Se realizeaza prin intermediul operatorului new si are ca efect alocarea memoriei pentru vector, mai precis specificarea numarului maxim de elemente pe care �l va avea vectorul; numeVector = new Tip[dimensiune];
Ex: v = new int[10]; //se aloca spatiu pentru 10 intregi
adrese = new String[100];
Obs: declararea si instantierea unui vector pot fi facute simultan astfel: Tip[] numeVector = new Tip[dimensiune];- Initializarea (optional)
Dupa declararea unui vector, acesta poate fi initializat, adica elementele sale pot primi niste valori initiale, evident daca este cazul pentru asa ceva. In acest caz instantierea lipseste, alocarea memoriei fac�ndu-se automat �n functie de numarul de elemente cu care se initializeaza vectorul. Ex: String culori[] = {"Rosu", "Galben", "Verde"};
int []factorial = {1, 1, 2, 6, 24, 120};
Observatii:
Primul indice al unui vector este 0, deci pozitiile unui vector cu n elemente vor fi cuprinse �ntre 0 si n-1
Nu sunt permise constructii de genul Tip numeVector[dimensiune], alocarea memoriei fac�ndu-se doar prin intermediul opearatorului new. Ex: int v[10]; //ilegal
int v[] = new int[10]; //corect
Vectori multidimensionali
In Java tablourile multidimensionale sunt de fapt vectori de vectori.
Ex: int m[][]; //declararea unei matrici
m = new int[5][10]; //cu 5 linii, 10 coloane
Obs: m[0], m[1], ..., m[5] sunt vectori de intregi cu 10 elemente Dimensiunea unui vector
Cu ajutorul cuv�ntului cheie length se poate afla dimensiunea unui vector.
int []a = new int[5];
a.length are valoarea 5
int m = new int[5][10];
m[0].length are valoarea 10
Copierea vectorilor
Copierea unui vector �n alt vector se face cu ajutorul metodei System.arraycopy:
int x[] = {1, 2, 3, 4};
int y[] = new int[4];
System.arraycopy(x,0,y,0,x.length);
Vectori cu dimensiune variabila
Implementarea vectorilor cu numar variabil de elemente este oferita de clasa Vector din pachetul java.util. Un obiect de tip Vector contine numai elemente de tip Object.
Siruri de caractere
In Java, un sir de caractere poate fi reprezentat printr-un vector format din elemente de tip char, un obiect de tip String sau un obiect de tip StringBuffer.
Declararea unui sir
Daca un sir de caractere este constant atunci el va fi declarat de tipul String, altfel va fi declarat cu StringBuffer. (vezi "Clasele String, StringBuffer") Exemple echivalente de declarare a unui sir:
String str = "abc";
char data[] = {'a', 'b', 'c'};
String str = new String(data);
String str = new String("abc");
Concatenarea sirurilor
Concatenarea sirurilor de caractere se face prin intermediul operatorului +.
String str1 = "abc" + "xyz";
String str2 = "123";
String str3 = str1 + str2;
In Java, operatorul de concatenare + este extrem de flexibil �n sensul ca permite concatenarea sirurilor cu obiecte de orice tip care au o reprezentare de tip sir de caractere. System.out.print("Vectorul v are" + v.length + " elemente")
Folosirea argumentelor de la linia de comanda
O aplicatie Java poate primi oric�te argumente de la linia de comanda �n momentul lansarii ei. Aceste argumente sunt utile pentru a permite utilizatorului sa specifice diverse optiuni legate de functionarea aplicatiei sau sa furnizeze anumite date initiale programului.
Atentie: Programele care folosesc argumente de la linia de comanda nu sunt 100% pure Java deoarece unele sisteme de operare cum ar fi Mac OS nu au �n mod normal linie de comanda. Argumentele de la linia de comanda sunt introduse la lansarea unei aplicatii, fiind specificate dupa numele aplicatiei si separate prin spatiu. De exemplu, sa presupunem ca aplicatia Sort ordoneaza lexicografic liniile unui fisier si primeste ca argument numele fisierului pe care sa �l sorteze. Pentru a ordona fisierul "persoane.txt" lansarea aplicatiei se va face astfel: java Sort persoane.txt
Asadar, formatul general pentru lansarea unei aplicatii care primeste argumente de la linia de comanda este: java NumeAplicatie [arg1 arg2 . . . argn]
In cazul �n care sunt mai multe, argumentele trebuie separate prin spatii iar daca unul dintre argumente contine spatii, atunci el trebuie pus �ntre ghilimele. Evident, o aplicatie poate sa nu primeasca nici un argument sau poate sa ignore argumentele primite de la linia de comanda.
In momentul lansarii unei aplicatii interpretorul parcurge linia de comanda cu care a fost lansata aplicatia si, �n cazul �n care exista, transmite aplicatiei argumentele specificate sub forma unui vector de siruri. Acesta este primit de aplicatie ca parametru al metodei main. Reamintim ca formatul metodei main din clasa principala este: public static void main ( String args[])
Vectorul primit ca parametru de metoda main va contine toate argumentele transmise programului de la linia de comanda. In cazul apelului java Sort persoane.txt vectorul args va contine un singur element args[0]="persoane.txt".
Numarul argumentelor primite de un program este dat deci de dimensiunea vectorului args si acesta poate fi aflat prin intermediul atributului length al vectorilor: numarArgumente = args.length ;
Spre deosebire ce C/C++ vectorul primit de metoda main nu contine pe prima pozitie numele aplicatiei, �ntruc�t �n Java numele aplicatiei este numele clasei principale, adica a clasei �n care se gaseste metoda main.
Exemplu: afisarea argumentelor primite la linia de comanda public class Echo {
public static void main (String[] args) {
for (int i = 0; i < args.length; i++)
System.out.println(args[i]);
}
}
Un apel de genul java Echo Drink Hot Java va produce urmatorul rezultat: Drink
Hot
Java
(aplicatia Echo a primit 3 argumente).
Una apel de genul java Echo "Drink Hot Java" va produce urmatorul rezultat: Drink Hot Java
(aplicatia Echo a primit un singur argument). Argumente numerice la linia de comanda
Argumentele de la linia de comanda sunt primite sub forma unui vector de siruri (obiecte de tip String). In cazul �n care unele dintre acestea reprezinta valori numerice ele vor trebui convertite din siruri �n numere. Acest lucru se realizeaza cu metode de tipul parseXXX aflate �n clasa corespunzatoare tipului �n care vrem sa facem conversia: Integer, Float, Double, etc.
Sa consideram, de exemplu, ca aplicatia Power ridica un numar real la o putere �ntreaga, argumentele fiind trimise de la linia de comanda:
java Power "12.1" "3" //ridica 12.1 la puterea 3
Conversia celor doua argumente �n numere se va face astfel: double numar;
int putere;
numar = Double.parseDouble(args[0]);
putere = Integer.parseInt(args[1]);
Metodele de tipul parseXXX pot produce exceptii (erori) de tipul NumberFormatException �n cazul �n care sirul primit ca parametru nu reprezinta un numar de tipul respectiv.
P.S.Controlul executiei in java se aseamna cu cele din C!
===va urma===




.de
Reply With Quote