Monday, June 23, 2025 18:40

Cuprins >> Structuri De Date > Array List

Array List

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:

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:

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:

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:

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: , ,

Leave a Reply