Klíčový rozdíl – generická a negenerická kolekce v C
Obecná kolekce je třída, která poskytuje bezpečnost typu, aniž by bylo nutné odvozovat od základního typu kolekce a implementovat typově specifické členy. Negenerická kolekce je specializovaná třída pro ukládání a získávání dat, která poskytuje podporu pro zásobníky, fronty, seznamy a hashovací tabulky. Klíčový rozdíl mezi generickou a negenerickou kolekcí v C spočívá v tom, že generická kolekce je silně typována, zatímco negenerická kolekce silně typována není.
Co je Obecná kolekce v C?
Negenerické kolekce, jako je ArrayList, Queue, Stack atd.může ukládat prvky různých datových typů. Při získávání položek by je měl programátor přetypovat na správný datový typ. Jinak to může způsobit výjimku za běhu. K překonání tohoto problému lze použít generické třídy kolekce. Obecné kolekce ukládají prvky interně do polí jejich skutečných typů. Proto není vyžadováno odlévání typu. Lze je použít k uložení prvků zadaného typu nebo typů. Některé obecné třídy kolekce jsou List, Dictionary, SortedList, HashSet, Queue, Stack.
Generický seznam obsahuje prvky určeného typu. Při přidávání prvků může seznam odpovídajícím způsobem zvětšit. Pokud existuje následující příkaz, všechny prvky, které lze uložit do seznamu1, by měly být celá čísla, Seznam seznamu1 – nový seznam ();
Generický slovník v C je sbírka klíčů a hodnot. Pokud existuje následující příkaz, může slovník objektů1 ukládat klíče typu int a hodnoty typu řetězce.
Slovníkový slovník1=nový slovník ();
Obecná kolekce SortedList ve výchozím nastavení ukládá páry klíčů a hodnot ve vzestupném pořadí klíče. Níže uvedený příklad ukládá klíč typu int a hodnotu typu řetězce.
SortedList s0=nový SortedList ();
To je několik příkladů pro Generic Collection v C. Tyto kolekce mohou ukládat více hodnot zadaných datových typů. Jsou tedy silně zadané.
Co je to negenerická kolekce v C?
Pole lze použít k uložení více prvků. Jednou nevýhodou je, že může ukládat prvky stejného datového typu. V C existují třídy, které lze použít k uložení mnoha hodnot nebo objektů známých jako kolekce. Kolekce pomáhají ukládat, aktualizovat, mazat, vyhledávat a třídit objekty. Velikost sbírky lze dynamicky zvětšovat nebo zmenšovat.
Některé negenerické třídy kolekce jsou ArrayList, SortedList, Stack, Queue a HashTable. Každá třída kolekce implementuje rozhraní IEnumerable. Pomáhá procházet prvky položek v kolekci pomocí smyčky foreach.
ArrayList je alternativou k poli. Pokud existuje pole, které může uložit 10 prvků, nemůže uložit 20 prvků. Pokud je pole inicializováno na 10 prvků, ale ukládá pouze 5 prvků, pak se zbytek nepoužívá. Proto je pole pevné. V ArrayList je možné přidávat nebo odebírat prvky v závislosti na indexu. Umožňuje dynamickou alokaci paměti. Metodu řazení lze použít k seřazení prvků ve vzestupném pořadí.
HashTable se používá k reprezentaci kolekce párů klíč-hodnota. Jsou organizovány na základě hashCode klíče. Každý prvek má tedy pár klíč-hodnota. Klíč lze použít pro přístup k určitému prvku v kolekci. Zásobník představuje poslední příchozí a první přístup k položkám. Fronta se používá pro přístup položky první dovnitř, první ven. To jsou některé z negenerických kolekcí podporovaných C. Tyto kolekce mohou ukládat prvky různých typů.
Jaká je podobnost mezi generickou a negenerickou kolekcí v C?
K uložení více prvků v C lze použít obecnou i negenerickou kolekci
Jaký je rozdíl mezi generickou a negenerickou kolekcí v C?
Obecná vs. negenerická kolekce v C |
|
Generická kolekce je třída, která poskytuje typovou bezpečnost, aniž by bylo nutné odvozovat od základního typu kolekce a implementovat typově specifické členy. | Negenerická kolekce je specializovaná třída pro ukládání a získávání dat, která poskytuje podporu pro zásobníky, fronty, seznamy a hashovací tabulky. |
Jmenný prostor | |
Třídy Generic Collection jsou v systému. Sbírky. Obecný jmenný prostor. | Negenerické třídy kolekce jsou v systému. Jmenný prostor sbírek. |
Typ | |
Obecná sbírka je silně typická. | Negenerická sbírka není silně zadaná. |
Ukládání prvků | |
Generické kolekce ukládají prvky interně do polí jejich skutečných typů. | Negenerické kolekce ukládají prvky interně do polí objektů, takže mohou ukládat jakýkoli typ dat. |
Shrnutí – Obecná vs. Negenerická kolekce v jazyce C
Tento článek pojednával o rozdílu mezi generickou a negenerickou kolekcí v C. Rozdíl mezi generickou a negenerickou sbírkou je v tom, že obecná sbírka je silně typována, zatímco negenerická sbírka není silně typována.