Atribuirea și compararea matrice
lucruri simple uitat cum se face!
Iz K / f „Aventurile lui Sherlock Holmes
si Dr. Watson "
În principiu, o matrice poate fi atribuit ca valoare a unei alte matrice, în cazul în care tipurile lor coincid. Matricele pot fi, de asemenea, comparate. Cu toate acestea, în ciuda faptului că toate operațiunile sunt destul de specifice și într-o anumită măsură, pot surprinde. Pentru a reduce o astfel de surpriză la un nivel minim, este esențial să se concentreze asupra este ceea ce este matrice și ca TION de realizare tehnică asociată constructe sintactice ale limbajului Java.
Variabila care indică o matrice (matrice variabilă) este declarată, indiferent de alocarea reală pentru matrice. Cu alte cuvinte, gama sa imediată și variabila matrice - acest lucru nu este același lucru. În acest sens, indică două etape (două echipe), procesul de co-construire matrice. De exemplu:
Nums mennoy. Este ușor să ghicească ce va fi rezultatul următoarele comenzi:
int [] Nums, date; Nums = new int []; date = Nums;
Atunci când se compară matrice folosind bine operatorii și nu este egal ==! = (De exemplu, Nums == date sau Nums! = Date) compară valorile variabilelor de matrice, mai degrabă decât elementele din aceste matrice. Prin urmare, rezultatul unei Nums de expresie == date yav- doresc să creeze adevărate, în cazul în care ambele variabile Nums matrice și de date se referă la aceeași matrice.
Un exemplu al unui program în care există o atribuire a matrice este prezentată în 3.7.
Listarea 3.7. atribuire matrice
statice void main (String [] args) publice
pentru (i = 0; i
Programul declară două întregi matrice: Nums matrice de 10 elemente și o serie de date de 20 de elemente. Cu aceste instrucțiuni ciclu mare Siva umplut Nums matrice umplute cu numere impare, o serie de date - chiar. După aceea, date = Nums comanda matrice de date ca valoare atribuite Nums matrice. Vă rugăm să rețineți că în timp ce aceste matrice au
același tip, acestea au dimensiuni diferite. Apoi, folosind un alt ciclu de instruire elemente ale datelor AREA matrice sunt de ieșire la intervale de o linie (pentru valori de ieșire, fără a se trece la o nouă linie de imprimare folosind metoda ()). Rezultatele pe care le obține seria numerică:
1 3 5 7 9 11 13 15 17 19
Acestea sunt valorile care sunt inițializate Nums matrice. Interesul în acest caz este faptul că instrucțiunile de buclă obespechivayu- fierbere de date de ieșire valori matrice, limita superioară pentru indicii elementelor de matrice este determinată de proprietate de date de lungime matrice. Rowan matrice inițializate cu o dimensiune de 20, iar în cele din urmă dimensiunea sa a fost dovedit a fi de 10! Motivul evident. După matrice de date de comandă = Nums date variabile începe să se refere la aceeași matrice ca Nums matrice variabilă.
Caracteristici matrice de comparație pentru egalitate (inegalitate) sunt ilustrate prin codul de program în 3.8.
Listarea 3.8. Compararea matrice
statice void main (String [] args) publice
verificarea matrice // Element-orientat: pentru (int i = 0; i
Programul este conceput pentru a compara două tablouri întregi. Gramul pro- declarate două Nums întreg matrice și date și initsializiru- sunt seturi identice de valori. verificări suplimentare în mod direct. Se compune din trei etape. Primele verificări egalitatea variabilelor matrici Nums și date. În cazul în care link-urile sunt egale, atunci, în mod evident, matricele sunt aceleași (identice). Verificați egalitatea de trimiteri la matrice se realizează
utilizând o declarație condiționată în cazul în care (), cu condiția Nums == date. În cazul în care condiția este afișat mesajul coincidente matrice. Atunci când acest lucru este finalizat programul, care utilizează o comandă de retur.
În cazul în care link-uri sunt diferite, matrice efectuate element de verificare. MAC Siwa sunt considerate egale dacă se potrivesc cu polițiștii elementul corespunzator. Dar, mai întâi trebuie să verificați dacă dimensiunile matrice sunt identice. Verificarea dimensiunii egalității matrice este de asemenea realizată folosind instrucțiuni condiționale dacă Noe (), verifică starea data.length! = Nums.length. Condiția este adevărată dacă matricele au dimensiuni diferite. În acest caz, este afișat un mesaj elemente nepotriviri. și completează za- programul de lucru.
Atunci când se potrivesc dimensiunea de matrice începe un ciclu în care sunt comparate elementele celor două tablouri. Pentru a face acest lucru, utilizați TION Instrucțiunea condițională if () pentru a verifica condițiile de date [i] = Nums [i] (i - indicele variabilă). În cazul în care există elemente divergente, un mesaj de Nesovpadayu- elemente conductoare. și funcționarea programului este finalizată.
Dacă două matrice au doar potrivire elemente Chiva în ciclul de închidere fără consecințe, și, cel mai important, executarea continuă, astfel încât, la sfârșitul unui mesaj este afișat matrice identice!.