( ... List, Hashtable, Dictionary, Stack, Queue ... )

Pretpostavimo da radimo sa nekim skupom objekata koje želimo da nekako organizujemo. U tom slučaju koriste se klase koje se označavaju kao kolekcije (kolekcija=zbirka, skupljanje).

(Nizovi elemenata tipa dobijenog od generičkog tipa nisu dopušteni!)

C# generičke i ne-generičke kolekcije podataka

C# ima ugrađene specijalizovane klase koje mogu da čuvaju niz vrednosti ili objekata koji se nazivaju kolekcije (collections). U C#-u postoje dve vrste kolekcija: ne-generičke i generičke. Prostor imena (namespace) System.Collections sadrži ne-generičke tipove zbirki, a System.Collections.Generic  u sebi sadrži generičke tipove kolekcija. U većini slučajeva, preporučuje se upotreba generičkih kolekcija jer one rade brže od ne-generičkih i takođe smanjuju pojavu izuzetaka jer ako nešto nije kako treba dobiće se greška prilikom kompajliranja.

Generičke kolekcije

(Klikom na naziv kolekcije bićete preusmereni na tutorialsteacher.com gde možete da vidite primere i da vežbate online)

C# u sebi ima ugrađene sledeće generičke klase za kolekcije:

Generička kolekcija:

Opis:

List<T>

Generička lista - List<T> sadrži elemente navedenog tipa. Raste automatski dok u nju dodajete elemente.

Dictionary<TKey,TValue>

Rečnik - Dictionary<TKey, TValue> sadrži parove ključ / vrijednost.

SortedList<TKey,TValue>

Uređena lista - SortedList u sebi čuva parove ključeva i vrijednosti. Automatski dodaje elemente u rastućem redoslijedu ključa.

Queue<T>

RED - Queue <T> čuva vrednosti u FIFO stilu (First In First Out). Održava redosled dodavanja vrednosti. Pruža Enqueue () metodu za dodavanje vrednosti i Dequeue () metodu za dohvaćanje vrednosti iz kolekcije.

Stack<T>

STEK - Stack <T> čuva vrijednosti kao LIFO (Last In First Out). Omogućava metodu Push () za dodavanje vrednosti i metode Pop () & Peek () za dohvaćanje vrednosti.

Hashset<T>

Hashset <T> sadrži ne duplicirane elemente. Eliminira duple elemente


Ako vam je ovo previše komplikovano, na jednostavniji način je objašnjeno na:

https://www.codesdope.com/course/c-sharp-collections/


Da se podsetite gradiva koje je rađeno u prethodnim školskim godinama, pogledajte koje su to kolekcije koje nisu generičke:

NE-Generičke kolekcije:

Opis:

ArrayList

ArrayList u sebi čuva objekte bilo kojeg tipa - kao niz. Međutim, nema potrebe unapred specificirati veličinu ArrayList -a jer se automatski povećava.

SortedList

SortedList čuva parove ključeva i vrednosti. Automatski raspoređuje elemente u rastućem redosledu ključeva. C# uključuje i generičku i ne-generičku kolekciju SortedList.

Stack

Stack čuva vrednosti u LIFO stilu (Last In First Out). Omogućava metodu Push () za dodavanje vrednosti i metode Pop () & Peek () za dohvaćanje vrednosti. C# uključuje i generički i ne-generički Stack.

Queue

Queue čuva vrednosti u FIFO stilu (First In First Out). Održava redosled dodavanja vrednosti. Pruža Enqueue () metodu za dodavanje vrednosti i Dequeue () metodu za dohvaćanje vrednosti iz kolekcije. C# uključuje generički i ne-generički red.

Hashtable

Hashtable čuva parove ključeva i vrednosti. Dohvaća vrednosti upoređivanjem hash vrednosti ključeva.

BitArray

BitArray upravlja kompaktnim nizom bitovnih vrednosti, koje su predstavljene kao Booleans, gde true označava da je bit uključen (1), a false označava da je bit isključen (0).


Last modified: Tuesday, 21 September 2021, 10:37 AM