Wednesday, December 02, 2020 07:06

Cuprins >> Structuri De Date > Array-uri

Array-uri

Am mai vorbit despre array-uri înainte, într-un întreg capitol. Array-urile sunt colecții cu număr fix de elemente de anumit tip (șiruri, numere întregi, etc.) în care elementele își păstrează ordinea inițială. Fiecare element poate fi accesat prin indexul său numeric, care începe la 0. Array-urile sunt zone de memorie care au o dimensiune predefinită. De aceea, adăugarea unui element nou într-un array este o operație lentă. Pentru această operație trebuie mai întâi să alocăm o memorie de aceeași dimensiune plus unu, și să copiem toate datele din array-ul original în cel nou. Căutarea într-o matrice necesită timp deoarece trebuie să comparăm fiecare element cu valoarea căutată. Este nevoie de N/2 comparații, în medie. Eliminarea unui element dintr-un array este, de asemenea, o operație lentă. Ca și mai sus, trebuie să alocăm o memorie de aceeași mărime minus unu și să copiem toate elementele vechi, cu excepția celui eliminat. Accesarea elementelor prin index este directă și, prin urmare, o operație rapidă. Array-urile ar trebui utilizate numai atunci când trebuie să procesăm un număr fix de elemente, pentru care avem nevoie de un acces rapid prin index. De exemplu, dacă trebuie să sortăm niște numere, putem să le păstrăm într-un array și apoi să aplicăm unii dintre algoritmii de sortare. Dacă trebuie să modificăm numărul elementelor, array-ul nu este structura corectă de date pe care ar trebui să o folosim. Utilizați array-uri atunci când trebuie să procesați un număr fix de elemente la care aveți nevoie de acces prin index. Un array este definit astfel:

Exemplu:

Array-urile au o mulțime de metode, dintre care următoarele sunt cele mai utile:

Array.AsReadOnly() – face posibilă restricționarea accesului la matrice din codul clientului. Exemplu:

Array.BinarySearch() – Această metodă identifică rapid și precis locația unui element în matrice. I se poate spune cum să compare elementele. Funcționează corect numai pe o matrice presortată. Exemplu:

Array.Clear() – elimină toate elementele dintr-un array. Aceasta oferă o modalitate unică, fiabilă și ușor de înțeles de a goli sau șterge array-ul. Funcționează cu array-uri de orice tip, inclusiv numere, booleani, structuri și instanțe de clasă. Exemplu:

Array.ConvertAll() – vă permite să convertiți declarativ un array întreg, într-o singură instrucțiune. Convertește toate elementele dintr-un array într-un alt tip. Implică anumite pierderi de performanță. Dar poate simplifica codul, în special în programele în care au loc multe conversii diferite. Exemplu:

Array.Copy() – copiază elementele dintr-un array în altul. Are unele complexități. Această operațiune poate duce la anumite excepții. Tipul de elemente – atât în array-ul țintă, cât și în cel sursă – este important. Aceasta este o metodă statică. Exemplu:

Array.Exists() – oferă o modalitate la îndemână de a testa un element care corespunde unei anumite condiții predicat. Aceasta implică unele dezavantaje generale și de performanță. Dar poate fi util pentru anumite programe. Exemplu:

Array.Find() – Această metodă caută într-un array (cu sintaxă declarativă). Specificăm o instanță de tip predicat pentru a determina ce logică utilizează căutarea. Exemplu:

Array.ForEach() – ciclează peste fiecare element dintr-un array. Apelează o metodă pe fiecare element dintr-un array. Este o formă de sintaxă declarativă. Simplifică anumite tipare de cod. Nu este necesară utilizarea unei bucle. Exemple:

Array.IndexOf() – caută într-un array. Acționează pe orice tip de array. Localizează indexul valorii specificate. Metoda IndexOf, atât în forma sa generică, cât și în forma LastIndexOf, este utilă în multe contexte ale programului. Exemplu:

Array.LastIndexOf() – găsește ultimul element dintr-un array, care se potrivește termenului căutat. Caută de la sfârșitul array-ului. Aceasta returnează indexul elementului care conține valoarea specificată. Are limitări – poate avea o valoare limitată. Exemple:

Array.Resize() alocă un nou array. Se copiază apoi valorile elementelor existente în noul array. Această logică este necesară atunci când mărimea array-ului este inadecvată. Itaă modul în care Resize realocă și copiază elementele:

Array.Reverse() – inversează ordonarea elementelor într-un array. Această sarcină ar putea fi realizată cu o buclă. Dar metoda Array.Reverse() este mai convenabilă – și, de asemenea, mai ușor de citit. Exemplu:

Array.Sort() – Această metodă ordonează elemente dintr-un array. Funcționează cu diferite tipuri de elemente, inclusiv șiruri de caractere și numere întregi. Exemplu:

Array.TrueForAll() – o metodă de array statică. Vă oferă o modalitate declarativă de a testa fiecare element din array-ul vostru, după o anumită condiție, utilizând un predicat. Scanează array-ul și returnează adevărat sau fals. Exemplu:

Cea mai importantă proprietate a array-urilor este:

Length – un array are o lungime – aceasta este mărimea sa (numărul de elemente). Returnează un număr întreg cu valoarea 0 sau mai mult; nu se efectuează nici o iterație (se utilizează o memorie cache). Exemplu:

Comments

comments

Tags: , , , ,

Leave a Reply



Do NOT follow this link or you will be banned from the site!