Cum se configurează smartphone-uri și PC-uri. Portal informativ

Matrice multidimensională Android. Matrice


Studii ca „Dezvoltator de jocuri” + angajare

Matrice Java

O matrice este o structură de date care stochează valori de același tip. Un singur element al unui tablou este accesat folosind un index întreg. De exemplu, dacă a este o matrice de numere întregi, atunci valoarea expresiei a [i] este egală cu al i-lea întreg din matrice.

O matrice este declarată astfel: mai întâi se indică tipul matricei, adică tipul elementelor conținute în matrice, urmat de o pereche de paranteze pătrate goale și apoi numele variabilei. De exemplu, iată cum este declarată o matrice de numere întregi:
int a;

Totuși, acest operator declară doar variabila a, fără a o inițializa cu un tablou real. Pentru a crea o matrice, trebuie să utilizați operatorul nou.

Acest operator creează o matrice de 100 de numere întregi. Elementele acestei matrice sunt numerotate de la 0 la 99 (nu de la 1 la 100). După creare, matricea poate fi completată, de exemplu, folosind o buclă.

int a = int nou;
pentru (int i = 0; i< 100; i++)
a [i] = i; // Completează matricea cu numere de la 0 la 99.

Dacă încercați să accesați elementul a (sau orice alt element al cărui index se află în afara intervalului de la 0 la 99) prin crearea unui tablou cu 100 de elemente, programul se va încheia deoarece se ridică o excepție legată de faptul că indexul matricei este în afara intervalului. gamă.
Pentru a număra numărul de elemente dintr-o matrice, utilizați metoda MassName.
wa.lungime.

De exemplu,

pentru (int i = 0; i< a. length; i++ System.out.println (a[i]);

Odată ce matricea a fost creată, nu este posibil să o redimensionați (deși, desigur, puteți modifica elementele sale individuale). Dacă trebuie să redimensionați frecvent o matrice în timpul execuției programului, este mai bine să utilizați o altă structură de date numită listă de matrice.

O matrice poate fi declarată în două moduri:

int a;
sau
int a;

Majoritatea programatorilor Java preferă primul stil, deoarece separă mai clar tipul de matrice int (un tablou întreg) de numele variabilei.

Inițializatoare de matrice și matrice fără nume

Limbajul Java are o facilitate pentru a crea o matrice și a o inițializa în același timp. Iată un exemplu de astfel de construcție sintactică:

int smallPrimes = (2, 3, 5, 7, 11, 13);

Rețineți că nu este necesar să utilizați noul operator în acest caz. În plus, este chiar posibil să inițializați o matrice fără nume:

int nou (16, 19, 23, 29, 31, 37)

Această expresie alocă memorie pentru o nouă matrice și o umple cu numerele din acolade. În acest caz, numărul lor este numărat și, în consecință, se determină dimensiunea matricei. Această sintaxă este utilă pentru reinițializarea unui tablou fără a crea o nouă variabilă. De exemplu, expresia

smallPrimes = new int (17, 19, 23, 29, 31, 37);
este o expresie stenografică
int anonim = (17, 19, 23, 29, 31, 37);
smailPrimes = anonim;

Puteți crea o matrice de dimensiune zero. O astfel de matrice poate fi utilă atunci când scrieți o metodă care calculează o matrice care se dovedește a fi goală. O matrice de lungime zero este declarată după cum urmează:

nou tip de articole

Rețineți că o astfel de matrice nu este echivalentă cu un obiect nul.

Copierea matricelor

O matrice poate fi copiată în alta, dar ambele variabile se vor referi la aceeași matrice.

int luckyNumbers = smailPrimes;
luckyNuimbers = 12; // Elementul smailPrimes este acum și 12.

Rezultatul este prezentat în Fig. 3.14. Dacă trebuie să copiați toate elementele unui tablou în altul, utilizați metoda arraycopy din System. Apelul său arată astfel:

System.arraycopy (de la, fromlndex, to, tolndex, count);

Tabloul to trebuie să fie suficient de mare pentru a conține toate elementele copiate.

Orez. 3.14. Copierea unei matrice

De exemplu, operatorii prezentați mai jos, ale căror rezultate sunt prezentate în Fig. 3.15, creați două matrice și apoi copiați ultimele patru elemente ale primului tablou în al doilea. Copierea începe din a doua poziție din matricea sursă, iar elementele copiate sunt plasate în matricea țintă începând cu a treia poziție.

int smailPrimes = (2, 3, 5, 7, 11, 13);
int luckyNumbers = (1001, 1002, 1003, 1004, 1005, 1006, 1007);
System.aggausor (smailPrimes, 2, luckyNumbers, 3, 4);
pentru (int i = 0; i< luckyNumbers.length; i++)
System.println (i +. ":" + LuckyNumbersfi]);

Executarea acestor declarații conduce la următorul rezultat.

0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13

Orez. 3.15. Copierea elementelor matricei

O matrice în Java este semnificativ diferită de o matrice în C++. Cu toate acestea, este practic la fel ca un pointer către o matrice dinamică. Aceasta înseamnă că operatorul

int a = int nou; // Java
echivalent cu operator
i n t * = nou i n t [1 0 0]; // C++,
dar nu
int a; // C++

În Java, instrucțiunea no verifică în mod implicit intervalul de modificări ale indexului. În plus, limbajul Java nu are aritmetică pointer - nu puteți incrementa un pointer pentru a accesa următorul element din matrice.

Matrice (Matrice engleză) este un obiect care stochează un număr fix de valori de același tip. Cu alte cuvinte, o matrice este o colecție numerotată de variabile. Variabila din tablou este apelată element de matrice, iar poziția sa în matrice este dată de index... De exemplu, trebuie să stocăm 50 de nume diferite, trebuie să recunoașteți că este incomod să creați o variabilă separată pentru fiecare nume, așa că vom folosi o matrice. Numerotarea elementelor matricei începe de la 0, iar lungimea matricei este setată în momentul creării sale și este fixă.

Pentru claritate, poza cu care am facut-o Tutorialul Java.

Pentru a crea o matrice, trebuie să o declarați, să îi rezervați memorie și să o inițializați.

Declarație de matrice în Java

Când creați o matrice în Java, primul pas este să o declarați. Acest lucru se poate face după cum urmează:

Int myFirstArray;

De asemenea, puteți declara o matrice ca aceasta:

Int mySecondArray;

Cu toate acestea, acest lucru nu este binevenit de convențiile Java, deoarece parantezele indică faptul că avem de-a face cu o matrice și este mai logic când sunt lângă desemnarea tipului.

Pe baza acestui exemplu, am declarat 2 matrice cu numele myFirstArrayși mySecondArray... Ambele matrice vor conține elemente de tip int.

În mod similar, puteți declara o matrice de orice tip:

Byte anArrayOfBytes; scurt anArrayOfShorts; lung anArrayOfLongs; float anArrayOfFloats; dublu anArrayOfDoubles; boolean anArrayOfBooleans; char anArrayOfChars; String anArrayOfStrings; ...

Tipul unei matrice este specificat ca tip, unde tip este tipul de date al elementelor pe care le conține. Parantezele sunt o denotație specială conform căreia variabilele sunt conținute într-o matrice. Numele matricei poate fi orice, cu toate acestea, trebuie să se potrivească.

Matricele pot fi create nu numai din variabile de tipuri de bază, ci și din obiecte arbitrare.

Când o matrice este declarată în Java, dimensiunea sa nu este specificată și memoria nu îi este rezervată. Se creează doar o referință la matrice.

Rezervarea memoriei pentru o matrice și inițializarea acesteia.

Int myFirstArray; myFirstArray = int nou;

În exemplul nostru, am creat o matrice de 15 elemente de tip intși l-a atribuit variabilei declarate anterior myFirstArray.

De asemenea, puteți declara un nume de matrice și puteți rezerva memorie pentru acesta pe aceeași linie.

Int myArray = new int;

Când creați o matrice folosind cuvântul cheie nou, toate elementele matricei sunt inițializate automat la valori zero. Pentru a atribui valorile lor inițiale elementelor matricei, este necesar să o mențineți initializare... Inițializarea poate fi efectuată ca element cu element

MyFirstArray = 10; // inițializați primul element myFirstArray = 20; // inițializam al doilea element myFirstArray = 30; // etc.

și într-o buclă, folosind indexul, parcurgând toate elementele matricei și atribuindu-le valori.

Pentru (int i = 0; i< 15; i++){ myFirstArray[i] = 10; }

După cum puteți vedea din exemplele anterioare, pentru a vă referi la un element de matrice, trebuie să specificați numele acestuia și, apoi, între paranteze drepte - indexul elementului. Un element de matrice cu un index specific se comportă la fel ca o variabilă.

Să luăm în considerare crearea și inițializarea unui tablou în exemplul următor. În ea, creăm o matrice care conține numerele 0-9 și imprimăm valorile pe consolă.

// creează și inițializează o matrice int numberArray = new int; pentru (int i = 0; i< 10; i++){ numberArray[i] = i; } //вывод значений на консоль for(int i = 0; i < 10; i++){ System.out.println((i+1) + "-й элемент массива = " + numberArray[i]); }

Formular simplificat de înregistrare

De asemenea, puteți utiliza notația simplificată pentru a crea și inițializa o matrice. Nu conține niciun cuvânt nou, iar valorile inițiale ale matricei sunt enumerate în paranteze.

Int myColor = (255, 255, 0);

Aici, lungimea matricei este determinată de numărul de valori dintre paranteze și separate prin virgule. Acest lucru este mai potrivit pentru crearea de matrice mici.

Determinarea dimensiunii unui tablou

Mărimea matricei nu este întotdeauna evidentă, așa că pentru a o găsi, ar trebui să utilizați proprietatea length, care returnează lungimea matricei.

MyColor.length;

Acest cod ne va ajuta să aflăm că lungimea matricei myColor este de 3.

Exemplu: Având în vedere 4 numere, trebuie să găsiți minimul

numere int = (-9, 6, 0, -59); int min = numere; pentru (int i = 0; i< numbers.length; i++){ if(min>numere [i]) min = numere [i]; ) System.out.println (min);

Exerciții privind tablourile unidimensionale în Java:

  1. Creați o matrice care să conțină primele 10 numere impare. Imprimați elementele matricei pe consolă pe o singură linie, separate prin virgulă.
  2. Având în vedere o matrice de dimensiune N, găsiți cel mai mic element al matricei și imprimați-l pe consolă (dacă există mai multe elemente cele mai mici, imprimați-le pe toate).
  3. În tabloul de la sarcina 2. găsiți cel mai mare element.
  4. Schimbați cele mai mari și cele mai mici elemente ale matricei. Exemplu: dat o matrice (4, -5, 0, 6, 8). După înlocuire, va arăta ca (4, 8, 0, 6, -5).
  5. Găsiți media aritmetică a tuturor elementelor din tablou.

Matrice este o structură de date care este concepută pentru a stoca date de același tip. Matricele funcționează diferit în Java decât în ​​C/C++. Particularitati:

  • Deoarece tablourile sunt obiecte, putem găsi lungimea lor. Acesta este diferit de C / C ++, unde găsim lungimea folosind sizeof.
  • O variabilă matrice poate fi, de asemenea.
  • Variabilele sunt ordonate și au un indice care începe de la 0.
  • Poate fi folosit și ca câmp static, variabilă locală sau parametru de metodă.
  • Dimensiunea matricei trebuie să fie un int, nu lung sau scurt.
  • Superclasa directă a tipului de matrice este Object.
  • Fiecare tip de matrice implementează interfețele Cloneable și java.io.Serializable.

Inițializare și acces la matrice

Matrice unidimensionale: formular de declarație generală

Tastați var-name; sau tastați var-name;

O declarație constă din două componente: un tip și un nume. type declară tipul elementului de matrice. Tipul articolului determină tipul de date al fiecărui articol.

Pe lângă tipul int, putem crea și o matrice de alte tipuri de date precum char, float, double sau tip de date definit de utilizator (obiecte de clasă).Astfel, tipul de element determină ce tip de date va fi stocat în matrice. De exemplu:

// ambele sunt declarații valide int intArray; sau int intArray; byte byteArray; shortsArray; boolean booleanArray; long longArray; float floatArray; double doubleArray; char charArray; // o matrice de referințe la obiecte din // clasa MyClass (o clasă creată de // utilizator) MyClass myClassArray; Object ao, // array of Object Collection ca; // matrice de colecție // de tip necunoscut

Deși prima declarație de mai sus afirmă că intArray este o variabilă matrice, matricea nu există de fapt. Îi spune doar compilatorului că această variabilă este de tipul întreg.

Pentru a lega o matrice int la o matrice fizică reală de numere întregi, trebuie să o desemnați cu new și să o atribuiți la int.

Cum se creează o matrice în Java

Când declarați o matrice, este creată doar o referință la matrice. Pentru a crea sau a oferi memorie pentru o matrice, trebuie să creați o matrice după cum urmează: forma generală new este aplicată la unidimensional și arată astfel:
var-name = tip nou;

Aici tipul indică tipul de date, dimensiunea este numărul de elemente din matrice și var-name este numele variabilei matricei.

Int intArray; // declarație intArray = new int; // alocare de memorie

Int intArray = int nou; // o asociere

Este important de știut că elementele de matrice alocate de noua funcție sunt inițializate automat la zero (pentru tipurile numerice), false (pentru tipurile booleene) sau zero (pentru tipurile de referință).
Obținerea unei matrice este un proces în doi pași. Mai întâi, trebuie să declarați o variabilă de tipul dorit. În al doilea rând, trebuie să alocați memoria care va conține matricea folosind new și să o atribuiți unei variabile. Astfel, în Java, toate tablourile sunt alocate dinamic.

Literale matrice

Într-o situație în care dimensiunea matricei și a variabilelor sunt deja cunoscute, pot fi utilizați literali.

Int intArray = int nou (1,2,3,4,5,6,7,8,9,10); // Declararea matricei literale

  • Lungimea acestei matrice determină lungimea matricei generate.
  • Nu este nevoie să scrieți int în cele mai recente versiuni Java

Accesarea elementelor unei matrice Java folosind o buclă for

Fiecare element al matricei este accesat prin indexul său. Indicele începe la 0 și se termină la (dimensiunea totală) -1. Toate elementele pot fi accesate folosind o buclă for.

Pentru (int i = 0; i< arr.length; i++) System.out.println("Element at index " + i + " : "+ arr[i]);

// Un exemplu pentru a ilustra crearea unui tablou
// numere întregi, pune niște valori într-o matrice,
// și imprimă fiecare valoare.

clasa GFG
{

{

int arr;

// alocarea memoriei pentru 5 numere întregi.
arr = new int;


arr = 10;


arr = 20;

// curând ...
arr = 30;
arr = 40;
arr = 50;

// accesarea elementelor matricei specificate
pentru (int i = 0; i< arr.length; i++)
System.out.println ("Element la index" + i +
":" + arr [i]);
}
}
Ca rezultat, obținem:

Element la index 0: 10 Element la index 1: 20 Element la index 2: 30 Element la index 3: 40 Element la index 4: 50

Rețele de obiecte

O matrice de obiecte este creată în același mod ca și elementele de date, după cum urmează:

Student arr = student nou;

StudentArray conține șapte elemente de memorie fiecare din clasa elevului, în care pot fi stocate adresele celor șapte obiecte Student. Obiectele student trebuie create folosind constructorul clasei student și referințele lor trebuie alocate elementelor de matrice după cum urmează:

Student arr = student nou;

// Program Java pentru a ilustra crearea unei matrice de
// obiecte

clasa Student
{
public int roll_no;
public String nume;
Student (int roll_no, String name)
{
this.roll_no = roll_no;
this.name = nume;
}
}

// Elementele matricei sunt obiecte ale clasei Student.
clasa publica GFG
{
public static void main (Argumente șir)
{
// declară un tablou de numere întregi.
Student arr;

// alocarea memoriei pentru 5 obiecte de tip Student.
arr = student nou;

// inițializați primele elemente ale tabloului
arr = new Student (1, „aman”);

// inițializează elementele secunde ale matricei
arr = student nou (2, "vaibhav");

// curând ...
arr = student nou (3, „shikar”);
arr = new Student (4, „dharmesh”);
arr = new Student (5, „mohit”);

// accesarea elementelor matricei specificate
pentru (int i = 0; i< arr.length; i++)
System.out.println ("Element la" + i + ":" +
arr [i] .roll_no + "" + arr [i] .nume);
}
}

Primim:

Element la 0: 1 aman Element la 1: 2 vaibhav Element la 2: 3 shikar Element la 3: 4 dharmesh Element la 4: 5 mohit

Ce se întâmplă dacă încercăm să accesăm un element din afara matricei?
Compilatorul lansează o excepție ArrayIndexOutOfBoundsException, indicând faptul că matricea a fost accesată la un index nevalid. Indicele este fie negativ, fie mai mare sau egal cu dimensiunea matricei.

Multidimensional

Matricele multidimensionale sunt matrice de matrice, fiecare element conţinând o referinţă la o altă matrice. Creat prin adăugarea unui set de paranteze pătrate () pentru fiecare dimensiune. Să luăm în considerare un exemplu:

Int intArray = int nou; // o matrice 2D sau o matrice int intArray = new int; // o matrice 3D

clasa multidimensională
{
public static void main (Argumente șir)
{
// declararea și inițializarea matricei 2D
int arr = ((2,7,9), (3,6,1), (7,4,2));

// imprimarea matricei 2D
pentru (int i = 0; i< 3 ; i++)
{
pentru (int j = 0; j< 3 ; j++)
System.out.print (arr [i] [j] + "");

System.out.println ();
}
}
}

Ieșire: 2 7 9 3 6 1 7 4 2


Trecerea de tablouri la o metodă

La fel ca variabilele, putem trece matrice metodelor.

// Program Java pentru a demonstra // trecerea matricei la clasa de metodă Test (// Metoda driverului public static void main (String args) (int arr = (3, 1, 2, 5, 4); // trecerea matricei la metodă m1 sum (arr);) public static void sum (int arr) (// obținerea sumei valorilor matricei int sum = 0; pentru (int i = 0; i< arr.length; i++) sum+=arr[i]; System.out.println("sum of array values: " + sum); } }

La ieșire obținem:

suma valorilor matricei: 15

Returing Arrays de la Methods

Ca de obicei, metoda poate returna și o matrice. De exemplu, programul de mai jos returnează un tablou din metoda m1.

// Program Java pentru a demonstra // întoarcerea matricei din clasa de metodă Test (// Metoda driverului public static void main (String args) (int arr = m1 (); for (int i = 0; i< arr.length; i++) System.out.print(arr[i]+" "); } public static int m1() { // returning array return new int{1,2,3}; } }

Obiecte de clasă

Fiecare matrice are asociat un obiect de clasă care este partajat cu toate celelalte matrice cu același tip de componentă.

// Program Java pentru a demonstra // Obiecte de clasă pentru testul clasei Arrays (public static void main (String args) (int intArray = new int; byte byteArray = new byte; short shortsArray = new short; // array of Strings String strArray = String nou; System.out.println (intArray.getClass ()); System.out.println (intArray.getClass (). getSuperclass ()); System.out.println (byteArray.getClass ()); System.out. println (shortsArray.getClass ()); System.out.println (strArray.getClass ());))

clasa + ""); )))

O clonă a unei matrice multidimensionale (cum ar fi Object) este o copie, ceea ce înseamnă că creează doar o matrice nouă cu fiecare element și o referință la matricea originală de elemente, dar matricele imbricate sunt comune.

// Program Java pentru a demonstra // clonarea matricelor multidimensionale clasa Test (public static void main (String args) (int intArray = ((1,2,3), (4,5)); int cloneArray = intArray. clone (); // va tipări false System.out.println (intArray == cloneArray); // va tipări adevărat pe măsură ce este creată o copie superficială // adică sub-matricele sunt partajate System.out.println (intArray == cloneArray) ; System.out.println (intArray == cloneArray);))

O matrice este o structură de date care stochează valori de același tip. Un singur element al unui tablou este accesat folosind un index întreg. De exemplu, dacă a este o matrice de numere întregi, atunci valoarea expresiei a [i] este egală cu al i-lea întreg din matrice. O matrice este declarată astfel: mai întâi se indică tipul matricei, adică tipul elementelor conținute în matrice, urmat de o pereche de paranteze pătrate goale și apoi numele variabilei. De exemplu, iată cum este declarată o matrice de numere întregi: int a; Totuși, acest operator declară doar variabila a, fără a o inițializa cu un tablou real. Pentru a crea o matrice, trebuie să utilizați operatorul nou. int a = new int [100]; Acest operator creează o matrice de 100 de numere întregi. Elementele acestei matrice sunt numerotate de la 0 la 99 (nu de la 1 la 100). După creare, matricea poate fi completată, de exemplu, folosind o buclă. int a = new int [100]; pentru (int i = 0; i< 100 ; i++ ) a[ i] = i; // Completează matricea cu numere de la 0 la 99 Dacă încercați să accesați elementul a (sau orice alt element al cărui index se află în afara intervalului de la 0 la 99) prin crearea unui tablou cu 100 de elemente, programul se va încheia deoarece se ridică o excepție legată de faptul că indexul matricei este în afara intervalului. gamă. Pentru a număra numărul de elemente dintr-o matrice, utilizați metoda Array name.length. De exemplu, pentru (int i = 0; i< a. length; i++ , System. out. println (a[ i] ) ) ; После создания массива изменить его размер невозможно (хотя можно, конечно, изменять отдельные его элементы). Если в ходе выполнения программы необходимо часто изменять размер массива, лучше использовать другую структуру данных, называемую списком массивов (array list). Массив можно объявить двумя способами: int a; или int a ; Большинство программистов на языке Java предпочитают первый стиль, поскольку в нем четче отделяется тип массива int (целочисленный массив) от имени переменной.

Inițializatoare de matrice și matrice fără nume

Limbajul Java are o facilitate pentru a crea o matrice și a o inițializa în același timp. Iată un exemplu de astfel de sintaxă: int smallPrimes = (2, 3, 5, 7, 11, 13); Rețineți că nu este necesar să utilizați noul operator în acest caz. În plus, puteți chiar să inițializați o matrice fără nume: new int (16, 19, 23, 29, 31, 37) Această expresie alocă memorie pentru o nouă matrice și o umple cu numerele între acolade. În acest caz, numărul lor este numărat și, în consecință, se determină dimensiunea matricei. Această sintaxă este utilă pentru reinițializarea unui tablou fără a crea o nouă variabilă. De exemplu, expresia smallPrimes = new int (17, 19, 23, 29, 31, 37); este o notație scurtă a expresiei int anonim = (17, 19, 23, 29, 31, 37); smallPrimes = anonim; Puteți crea o matrice de dimensiune zero. O astfel de matrice poate fi utilă atunci când scrieți o metodă care calculează o matrice care se dovedește a fi goală. O matrice de lungime zero este declarată după cum urmează: tip de element nou Rețineți că o astfel de matrice nu este echivalentă cu un obiect nul.

Copierea matricelor

O matrice poate fi copiată în alta, dar ambele variabile se vor referi la aceeași matrice. int luckyNumbers = smallPrimes; luckyNumbers [5] = 12; // Acum elementul smallPrimes este, de asemenea, 12 Rezultatul este prezentat în Fig. 3.1. Dacă trebuie să copiați toate elementele unui tablou în altul, utilizați metoda arraycopy din System. Apelul său arată astfel: System. arraycopy (de la, fromlndex, to, tolndex, count); Tabloul to trebuie să fie suficient de mare pentru a conține toate elementele copiate. Figura 3.1. Copierea unei matrice De exemplu, operatorii prezentați mai jos, ale căror rezultate sunt prezentate în Fig. 3.2, creați două matrice și apoi copiați ultimele patru elemente ale primului tablou în al doilea. Copierea începe din a doua poziție din matricea sursă, iar elementele copiate sunt plasate în matricea țintă începând cu a treia poziție. int smallPrimes = (2, 3, 5, 7, 11, 13); int luckyNumbers = (1001, 1002, 1003, 1004, 1005, 1006, 1007); Sistem. arrausoru (smallPrimes, 2, luckyNumbers, 3, 4); pentru (int i = 0; i< luckyNumbers. length; i++ ) System. out. println (i + ": " + luckyNumbers[ i] ) ; Выполнение этих операторов приводит к следующему результату. 0 : 1001 1 : 1002 2 : 1003 3 : 5 4 : 7 5 : 11 6 : 13 Orez. 3.2. Copierea elementelor matricei O matrice în Java este semnificativ diferită de o matrice în C++. Cu toate acestea, este practic la fel ca un pointer către o matrice dinamică. Aceasta înseamnă că operatorul int a = new int [100]; // Java este echivalent cu operatorul int * = new int [100]; // C ++, nu int a [100]; // C ++ În Java, instrucțiunea implicită verifică intervalul de indici. În plus, limbajul Java nu are aritmetică pointer - nu puteți incrementa un pointer pentru a accesa următorul element din matrice. Link la primul O matrice este o structură de date care stochează valori de același tip. Un singur element al unui tablou este accesat folosind un index întreg. De exemplu, dacă a este o matrice de numere întregi, atunci valoarea expresiei a [i] este egală cu al i-lea întreg din matrice. O matrice este declarată astfel: mai întâi se indică tipul matricei, adică tipul elementelor conținute în matrice, urmat de o pereche de paranteze pătrate goale și apoi numele variabilei. De exemplu, iată cum este declarată o matrice de numere întregi: int a; Totuși, acest operator declară doar variabila a, fără a o inițializa cu un tablou real. Pentru a crea o matrice, trebuie să utilizați operatorul nou. int a = new int [100]; Acest operator creează o matrice de 100 de numere întregi. Elementele acestei matrice sunt numerotate de la 0 la 99 (nu de la 1 la 100). După creare, matricea poate fi completată, de exemplu, folosind o buclă. int a = new int [100]; pentru (int i = 0; i< 100 ; i++ ) a[ i] = i; // Completează matricea cu numere de la 0 la 99 Dacă încercați să accesați elementul a (sau orice alt element al cărui index se află în afara intervalului de la 0 la 99) prin crearea unui tablou cu 100 de elemente, programul se va încheia deoarece se ridică o excepție legată de faptul că indexul matricei este în afara intervalului. gamă. Pentru a număra numărul de elemente dintr-o matrice, utilizați metoda Array name.length. De exemplu, pentru (int i = 0; i< a. length; i++ , System. out. println (a[ i] ) ) ; После создания массива изменить его размер невозможно (хотя можно, конечно, изменять отдельные его элементы). Если в ходе выполнения программы необходимо часто изменять размер массива, лучше использовать другую структуру данных, называемую списком массивов (array list). Массив можно объявить двумя способами: int a; или int a ; Большинство программистов на языке Java предпочитают первый стиль, поскольку в нем четче отделяется тип массива int (целочисленный массив) от имени переменной.

Inițializatoare de matrice și matrice fără nume

Limbajul Java are o facilitate pentru a crea o matrice și a o inițializa în același timp. Iată un exemplu de astfel de sintaxă: int smallPrimes = (2, 3, 5, 7, 11, 13); Rețineți că nu este necesar să utilizați noul operator în acest caz. În plus, puteți chiar să inițializați o matrice fără nume: new int (16, 19, 23, 29, 31, 37) Această expresie alocă memorie pentru o nouă matrice și o umple cu numerele între acolade. În acest caz, numărul lor este numărat și, în consecință, se determină dimensiunea matricei. Această sintaxă este utilă pentru reinițializarea unui tablou fără a crea o nouă variabilă. De exemplu, expresia smallPrimes = new int (17, 19, 23, 29, 31, 37); este o notație scurtă a expresiei int anonim = (17, 19, 23, 29, 31, 37); smallPrimes = anonim; Puteți crea o matrice de dimensiune zero. O astfel de matrice poate fi utilă atunci când scrieți o metodă care calculează o matrice care se dovedește a fi goală. O matrice de lungime zero este declarată după cum urmează: tip de element nou Rețineți că o astfel de matrice nu este echivalentă cu un obiect nul.

Copierea matricelor

O matrice poate fi copiată în alta, dar ambele variabile se vor referi la aceeași matrice. int luckyNumbers = smallPrimes; luckyNumbers [5] = 12; // Acum elementul smallPrimes este, de asemenea, 12 Rezultatul este prezentat în Fig. 3.1. Dacă trebuie să copiați toate elementele unui tablou în altul, utilizați metoda arraycopy din System. Apelul său arată astfel: System. arraycopy (de la, fromlndex, to, tolndex, count); Tabloul to trebuie să fie suficient de mare pentru a conține toate elementele copiate. Figura 3.1. Copierea unei matrice De exemplu, operatorii prezentați mai jos, ale căror rezultate sunt prezentate în Fig. 3.2, creați două matrice și apoi copiați ultimele patru elemente ale primului tablou în al doilea. Copierea începe din a doua poziție din matricea sursă, iar elementele copiate sunt plasate în matricea țintă începând cu a treia poziție. int smallPrimes = (2, 3, 5, 7, 11, 13); int luckyNumbers = (1001, 1002, 1003, 1004, 1005, 1006, 1007); Sistem. arrausoru (smallPrimes, 2, luckyNumbers, 3, 4); pentru (int i = 0; i< luckyNumbers. length; i++ ) System. out. println (i + ": " + luckyNumbers[ i] ) ; Выполнение этих операторов приводит к следующему результату. 0 : 1001 1 : 1002 2 : 1003 3 : 5 4 : 7 5 : 11 6 : 13 Orez. 3.2. Copierea elementelor matricei O matrice în Java este semnificativ diferită de o matrice în C++. Cu toate acestea, este practic la fel ca un pointer către o matrice dinamică. Aceasta înseamnă că operatorul int a = new int [100]; // Java este echivalent cu operatorul int * = new int [100]; // C ++, nu int a [100]; // C ++ În Java, instrucțiunea implicită verifică intervalul de indici. În plus, limbajul Java nu are aritmetică pointer - nu puteți incrementa un pointer pentru a accesa următorul element din matrice. Link la primul

Top articole similare