Aflați Java pentru dezvoltarea Android Lucrul cu Arrays

Această lecție rapidă vă arată cum să lucrați cu matrice în Java. Această lecție face parte dintr-o serie continuă de tutoriale pentru dezvoltatorii care învață Java pentru a dezvolta aplicații Android.

Ce este o matrice?

O matrice este o structură comună de date utilizată pentru a stoca o listă ordonată de elemente. Elementele matrice sunt tipizate. De exemplu, puteți crea o serie de caractere pentru a reprezenta vocalele din alfabet:

char aVowels [] = 'a', 'e', ​​'i', 'o', 'u'; 

La fel ca C sau C ++, matricele Java sunt indexate numeric pe un sistem bazat pe 0. Aceasta înseamnă că primul element din matrice (adică "a") este la indexul 0, al doilea ("e") este la indexul 1 și așa mai departe.

Java face lucrul cu mese mai ușor decât multe alte limbi de programare. Matricea însăși este un obiect (de tip matrice), cu toate avantajele acestuia. De exemplu, puteți verifica întotdeauna dimensiunea unui matrice folosind proprietatea lungime:

int length = aVowels.length; 

Ce pot stoca într-o matrice?

Puteți stoca orice obiect sau tip primitiv într-o matrice. De exemplu, puteți stoca numere întregi într-o matrice:

int a Numere [] = 2, 4, 6; 

Sau puteți să stocați tipuri non-primitive precum Strings (sau orice altă clasă) într-o matrice:

String aStooges [] = "Larry", "Moe", "Curly"; 

Uneori, poate doriți să stocați obiecte de diferite tipuri într-un matrice. Puteți oricând să profitați de moștenire și să folosiți o clasă parentală pentru tipul de matrice. De exemplu, clasa Obiect este mama tuturor clasei ... astfel încât să puteți stoca diferite tipuri într-o singură matrice, cum ar fi aceasta:

float one = 1.0f; Integer două = Integer nou (2); Stringul trei = "trei"; Obiect aObjects [] = unul, doi, trei; 

Elementele unei matrice de obiecte Java sunt referințe (sau mânere) la obiecte, nu la instanțe reale ale obiectelor. O valoare a elementului este nulă până când îi este atribuită o instanță validă a unui obiect (adică matricea este inițializată automat, dar sunteți responsabil pentru atribuirea valorilor acesteia).

Declararea matricelor

Există mai multe moduri de a declara o matrice în Java. După cum ați văzut, puteți declara o matrice și puteți furniza imediat elementele sale utilizând sintaxa de tip bracket sculptat în stil C. De exemplu, următorul cod Java declară o serie de numere întregi de lungime 3 și inițializează matricea într-o singură linie:

int a Numere [] = 2, 4, 6; 

De asemenea, puteți declara o matrice cu o anumită dimensiune și apoi să atribuiți valoarea fiecărui element individual, după cum urmează:

dublu aPowersOfTwo [] = nou dublu [5]; aPowersOfTwo [0] = Math.pow (2,0); aPowersOfTwo [1] = Math.pow (2,1); aPowersOfTwo [2] = Math.pow (2,2); aPowersOfTwo [3] = Math.pow (2,3); aPowersOfTwo [4] = Math.pow (2,4); 

Aceasta este echivalentă cu crearea unui astfel de matrice:

dublu aPowersOfTwoExplicit [] = 1.0d, 2.0d, 4.0d, 8.0d, 16.0d; 

Există și alte câteva modalități de a crea matrice. De exemplu, puteți crea variabila matrice și o puteți atribui separat folosind noul cuvânt cheie. Puteți, de asemenea, pune paranteze matrice înainte de numele variabilei, dacă doriți (aceasta este o problemă de stil). De exemplu, următorul cod Java definește o matrice de elemente String și le atribuie în mod individual:

String [] aStopLightColors; aStopLightColors = String nou [3]; aStopLightColors [0] = String nou ("roșu"); aStopLightColors [1] = String nou ("galben"); aStopLightColors [2] = String nou ("verde"); 

Modificarea conținutului array

După cum ați văzut, puteți atribui valorile matricei utilizând sintaxa bracket:

Puteți extrage valorile matricei și după index. De exemplu, ați putea accesa cel de-al doilea element din tabloul numit aStopLightColors (definit în secțiunea anterioară) după cum urmează:

Stringul strCurrentLightColor = aStopLightColors [1]; 

Seturi de iterații

În cele din urmă, matricile sunt adesea folosite ca o listă ordonată de obiecte. Prin urmare, ați putea găsi că doriți să iterați prin matrice în ordine, accesând fiecare element metodic.

Există mai multe moduri de a face acest lucru în Java. Deoarece puteți verifica întotdeauna dimensiunea unui tablou programabil, puteți utiliza oricare dintre metodele tipice pentru buclă sau în timp ce le puteți găsi familiare. De exemplu, următorul cod Java declară o matrice intregă de trei cifre și utilizează o simplă for loop pentru a itera prin elementele:

int a Numere [] = 2, 4, 6; pentru (int i = 0; i < aNums.length; i++)  String strToPrint = "aNums[" + i + "]=" + aNums[i];  

Java oferă, de asemenea, o buclă foarte utilă pentru fiecare iterație prin iterații într-un mod prietenos. Buclele pentru fiecare buclă ajută la evitarea greșelilor greșite de programare atât de frecvente în bucle (erori off-by-one, etc.). Pentru a utiliza sintaxa pentru buclă pentru fiecare buclă, trebuie să definiți variabila buclă, apoi să introduceți un colon și apoi să specificați numele matricei. De exemplu, următorul cod furnizează structura de buclă similară cu cea precedentă pentru buclă prezentată mai sus:

pentru (int num: aNums) String strToPrint = num;  

După cum puteți vedea, bucla pentru fiecare buclă este plată. Cu toate acestea, nu mai știți indicele în timp ce iterați. Astfel, nu poate fi folosit în toate situațiile.

Concluzie

În această lecție rapidă ați învățat despre matricele din Java. Arrays reprezintă o structură de date fundamentală folosită pentru programarea Java care stochează într-un mod organizat un număr ordonat de obiecte dintr-un anumit tip. În Java, matricele sunt obiecte în sine și stochează referințe la obiecte, făcând alocarea și utilizarea mai ușoară (dar subtilă diferită) decât modul în care sunt utilizate arrays în alte limbi de programare.

despre autori

Dezvoltatorii mobili Lauren Darcey și Shane Conder au coautorizat mai multe cărți despre dezvoltarea Android: o carte de programare în profunzime intitulată Dezvoltarea aplicațiilor fără fir Android și Sams TeachYourself Dezvoltarea de aplicații Android în 24 de ore. Când nu scriu, își petrec timpul dezvoltând software-ul mobil la compania lor și oferind servicii de consultanță. Acestea pot fi obținute prin e-mail la androidwirelessdev@[email protected], prin intermediul blogului lor la androidbook.blogspot.com, și pe Twitter @ androidwireless.

Cod