ArrayList este un array dinamic. Asta înseamnă că un ArrayList poate avea orice număr de obiecte, de orice tip. Această structură de date a fost inițial concepută pentru a simplifica procesele de adăugare a elementelor noi într-un array. Sub capotă, un ArrayList este un array a cărui mărime este dublată de fiecare dată când spațiul disponibil se termină. Dublarea dimensiunii aray-ului intern este o strategie foarte eficientă, care reduce numărul de copieri de elemente pe termen lung. Nu voi descrie acest proces aici. Această structură de date este foarte simplu de utilizat:
|
ArrayList arrayLista = new ArrayList(); arrayLista.Add(56); arrayLista.Add("String"); arrayLista.Add(new Window()); |
Dezavantajul structurii de date ArrayList este că trebuie să convertiți valorile preluate înapoi în tipul original:
|
int valoareArrayList = (int)arrayLista[0]; |
ArrayList are următoarele metode importante:
Add() – Adaugă un element obiect nou la sfârșitul listei. Putem continua adăugarea elementelor în colecție până când memoria se va termina. Exemplu:
|
using System.Collections; class Program { static void Main() { // Creaza un ArrayList si adauga 3 elemente ArrayList lista = new ArrayList(); lista.Add("Unu"); lista.Add("Doi"); lista.Add("Trei"); } } |
AddRange() – putem folosi această metodă pentru a combina două ArrayList. Pe plan intern, AddRange() utilizează metodele Array.Copy() sau CopyTo(), care au o performanță mai bună decât unele bucle. Iată cum o folosim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
using System; using System.Collections; class Program { static void Main() { // Creaza un ArrayList cu doua valori. ArrayList lista = new ArrayList(); lista.Add(5); lista.Add(7); // Creaza al doilea ArrayList. ArrayList lista2 = new ArrayList(); lista2.Add(10); lista2.Add(13); // Adauga al doilea ArrayList la primul lista.AddRange(lista2); // Afiseaza valorile. foreach (int i in lista) Console.WriteLine(i); } } |
Clear() – Puteți apela metoda instanță Clear() în ArrayList. Pe plan intern, aceasta apelează metoda Array.Clear(), pe care am explicat-o în lecția anterioară. Exemplu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
using System; using System.Collections; class Program { static void Main() { // Creaza un ArrayList cu doua elemente. ArrayList lista = new ArrayList(); lista.Add(9); lista.Add(10); // Afiseaza numarul de elemente in ArrayList. Console.WriteLine(lista.Count); // Sterge elementele ArrayList. lista.Clear(); // Afiseaza numarul de elemente din nou. Console.WriteLine(lista.Count); } } |
Sort(), Reverse() – aceste metode fac exact ceea ce spune numele lor: sortează un ArrayList sau inversează ordinea elementelor sale. Exemplu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
using System; using System.Collections; class Program { static void Main() { // Creaza un ArrayList cu patru elementede tip string. ArrayList lista = new ArrayList(); lista.Add("Pisica"); lista.Add("Zebra"); lista.Add("Caine"); lista.Add("Vaca"); // Sorteaza ArrayList. lista.Sort(); // Afiseaza elementele ArrayList. foreach (string valoare in lista) Console.WriteLine(valoare); // Inverseaza ordinea elementelor din ArrayList. lista.Reverse(); // Afiseaza elementele ArrayList din nou. foreach (string valoare in lista) Console.WriteLine(valoare); } } |
Insert(), RemoveAt(), RemoveRange() – metode folosite pentru a adăuga sau elimina elemente dintr-un ArrayList. Remove() utilizează un index numeric pentru a specifica elementul pe care doriți să îl stergeți. RemoveRange() specifică un index de pornire din care ar trebui să înceapă eliminarea elementelor, și un alt parametru numeric pentru a specifica câte elemente vor fi eliminate. Exemplu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
using System; using System.Collections; class Program { static void Main() { // Creaza un ArrayList cu trei elemente de tip string. ArrayList lista = new ArrayList(); lista.Add("Unu"); lista.Add("Doi"); lista.Add("Trei"); // Sterge elementul din mijlocul ArrayList. lista.RemoveAt(1); // Va deveni [Unu, Trei] // Insereaza o noua valoare la inceputul ArrayList. lista.Insert(0, "Morcov"); // Devine [Morcov, Unu, Trei] // Sterge primele doua elemente din ArrayList. lista.RemoveRange(0, 2); // Afiseaza elementele ArrayList. foreach (string valoare in lista) Console.WriteLine(valoare); } } |
Cea mai importantă proprietate a ArrayLists este Count:
Count – returnează numărul de elemente dintr-un ArrayList.
ArrayList este o colecție pe care este cel mai bine să o evitați. Dar este adesea folosit în programe vechi – deci trebuie să fie încă suportat. Versiunile mai noi .NET Framework oferă colecții mai bune, cum ar fi Listele, despre care vom învăța în viitor.
Tags: array list, arrays, structuri de date
This entry was posted
on luni, aprilie 23rd, 2018 at 21:27
and is filed under Structuri De Date.
You can follow any responses to this entry through the feed.
You can skip to the end and leave a response. Pinging is currently not allowed.