ArrayList vs Array v C#: Rozdíl a srovnání

V C# je známo, že pole a ArrayList jsou nejpoužívanější datové typy. Pole je primární funkcí programovacího jazyka C#, zatímco ArrayList v C# je kolekce.

Key Takeaways

  1. ArrayList je dynamická kolekce s měnitelnou velikostí, která může ukládat prvky libovolného datového typu a automaticky upravovat svou velikost při přidávání nebo odebírání prvků. Může však mít náklady na výkon kvůli rozbalování a rozbalování hodnotových typů.
  2. Pole v C# jsou kolekce s pevnou velikostí a silným typem, které mohou ukládat prvky specifického datového typu, nabízejí lepší výkon díky eliminaci zalamování a rozbalování, ale vyžadují předdefinovanou velikost při inicializaci.
  3. Primárním rozdílem mezi ArrayList a Array v C# je flexibilita a bezpečnost typů, přičemž ArrayList nabízí dynamickou změnu velikosti a ukládání více typů dat. Naproti tomu pole poskytují lepší výkon a typovou bezpečnost, ale mají pevnou velikost.

ArrayList vs Array v C#

ArrayList je dynamický seznam objektů, které se mohou zvětšovat nebo zmenšovat, zatímco pole má pevnou velikost. ArrayList má metody pro manipulaci s daty, jako je přidávání nebo odstraňování prvků, zatímco pole vyžaduje ruční změnu velikosti. ArrayList může ukládat prvky různých datových typů, zatímco pole může ukládat prvky stejného datového typu.

Pro přístup k datům z ArrayList je potřeba je opakovat pomocí objektu, zatímco v poli vy umět snadno k nim přistupovat bez jakéhokoli předmětu.

ArrayList vs Array v C

 

Srovnávací tabulka

Parametr srovnáníArrayListŘada
StylArrayList je negenerického typuPole je silně typováno. Ukládat lze pouze hodnoty stejného datového typu.
Počet prvkůJe dynamický, takže lze uložit libovolný počet datových typůLze přidat pouze pevný počet prvků.
výkonSnižuje výkon, protože se používá box a unboxing.Má lepší výkon.
NULL hodnotaMůže přijmout hodnotu NULLNení
TřídaPoužívá statickou tříduPoužívá jmenný prostor System. sbírka

 

Co je ArrayList v C#?

Seznamy polí se inicializují pomocí rozhraní seznamu. Je považováno za jedno z nejflexibilnějších dat v C#. Kolekce v programovacích jazycích je speciální třída, která ukládá data a umožňuje programátorům je získat.

  1. ArrayList nemá žádnou pevnou velikost, velikost paměti je dynamická a můžete ji kdykoli změnit. Pokud kodér inicioval paměť pro 4 prvky, lze přidat jeden další prvek.
  2. V seznamu polí se velikost zvětší o hodnotu 2^n. Také ArrayList není generický, což nám umožňuje ukládat prvky různých datových typů.
  3. Některé ze základních funkcí pro ArrayList jsou RemoveAt(), Remove(), Insert() a Add().
  4. Může také uložit prvek null.
Také čtení:  Bitdefender vs Malwarebytes: Rozdíl a srovnání

Příklad

                                    Pomocí systému. sbírka;

                                    ArrayList a = new ArrayList();

                                    a.add(1, "ahoj");

                                    a.add(4);

                                    a.add(8.23);

                                    a.add(null);

Některé funkce se používají k interakci s daty uloženými v ArrayList.

  1. Add(): používá se k přidávání prvků do ArrayList.
  2. Vložit (): používá se k vložení prvků na konkrétní index v ArrayList.
  3. Remove(): používá se k odstranění jednoho prvku,
  4. RemoveAt(): Odebere specifické prvky v ArrayList.
 

Co je Array v C#?

Pole je datový typ, do kterého může programátor ukládat data stejného typu a pevné délky. Hodnotu délky a dat nelze během běhu měnit. Všem prvkům pole jsou přiřazeny hodnoty indexu a index pole je nula.

Výchozí hodnota je tedy nula indexu pro první prvek v poli. The syntax pro deklarování a definování pole v C# je následující. Protože pole je referenční datový typ, jeho paměť je alokována v paměti haldy.

                                    Int[] pole = new int[] { 10,20,30,40};

                        10 20 30 40 údaje

                        0 1 2 3 Indexy

Některé důležité body o polích.

  1. Pole má pevnou velikost a je silně typováno. Tento znamená, že pokud například vytvoříte pole celočíselných hodnot, nemůžete ukládat řetězce.
  2. Vzhledem k tomu, že nedochází k unboxingu nebo boxování dat, funguje lépe.

Hlavní rozdíly mezi ArrayList a Array v C#

  1. Velikost pole je pevná a obsahuje sekvenční kolekci všech prvků stejného typu. Velikost seznamu polí není pevná a zvyšuje se s hodnotou 2^n.
  2. Dimenze pole a délka každé dimenze se inicializují při vytvoření pole. Změna hodnoty délky pole není za běhu možná. Pro ArrayList lze hodnotu délky seznamu polí dynamicky měnit.
  3. Index prvního prvku v poli je 0 a index posledního prvku je n-1, kde n je délka velikosti pole.
  4. ArrayList obsahuje prvky různých datových typů, zatímco pole obsahuje data podobných datových typů. Pokud je například pole typu integer, pak lze do pole uložit pouze celá čísla.
  5. Pole je silně typovaný datový typ a jeho účinnost je lepší než u ArrayList. Vzhledem k tomu, že v Arraylist je potřeba rozbalení a zaškatulkování, je méně efektivní.
  6. Velikost ArrayList se automaticky zvyšuje; proto musíte zadat jakoukoli velikost.
Rozdíl mezi X a Y 43
Reference
  1. Třída ArrayList (System.Collections) | Dokumenty Microsoft
  2. https://www.itu.dk/research/c5/latest/ITU-TR-2006-76.pdf
Také čtení:  Dell Mobile Connect vs váš telefon: Rozdíl a srovnání

Poslední aktualizace: 11. června 2023

tečka 1
Jedna žádost?

Vynaložil jsem tolik úsilí, abych napsal tento blogový příspěvek, abych vám poskytl hodnotu. Bude to pro mě velmi užitečné, pokud zvážíte sdílení na sociálních sítích nebo se svými přáteli / rodinou. SDÍLENÍ JE ♥️

25 myšlenek na téma „ArrayList vs Array v C#: Rozdíl a srovnání“

  1. I když je důležité porozumět rozdílům, také si myslím, že je důležité vědět, kdy použít ArrayList přes pole a naopak. Kontext je klíčový.

    odpověď
    • Uctivě nesouhlasím. I když vám mohou být pojmy jasné, příklady mohou být skutečně přínosné pro ty, kteří potřebují další pomoc při porozumění.

      odpověď
  2. Důkladné srovnání mezi ArrayList a Array v C# je vynikající, ale rád bych viděl více praktických případů použití pro každý z nich.

    odpověď
  3. Nesouhlasím s upřednostňováním polí před ArrayList kvůli lepšímu výkonu. Flexibilita ArrayList může být v určitých situacích neocenitelná.

    odpověď
    • Myslím, že jak pole, tak ArrayList mají své silné a slabé stránky a je důležité zvážit specifické požadavky každého programovacího úkolu.

      odpověď
    • Chápu váš názor, ale existují i ​​případy, kdy je pevná velikost polí vhodnější. Vše je o výběru správného nástroje pro danou práci.

      odpověď

Zanechat komentář

Chcete si tento článek uložit na později? Klikněte na srdce v pravém dolním rohu pro uložení do vlastního pole článků!