Showing posts with label enqueue. Show all posts
Showing posts with label enqueue. Show all posts

Monday, May 30, 2016

Negeneričke kolekcije u C# programskom jeziku


Verovatno se sećate šta su nizovi iako sam nizove opisao među prvim postovima C# programskog jezika; pogledajte ovde. Za razliku od nizova kolekcije su vam veći progres od nizova i mnogo se više koriste u programiranju. Tačnije kolekcije predstavljaju skup objekata kojima je moguće pristupati elemenat po elemenat. To u praksi znači da je kolekcija set objekata kojima se pristupa korišćenjem petlje foreach. Razlika između nizova i kolekcija je pre svega u tome što u većini nizova unapred trebate odrediti veličinu, dok to sa kolekcijama nije slučaj. Kolekcije imaju mnogo više funkcionalnosti nego nizovi. Ali pogledajte prvo od čega se sastoji kolekcija.



( Grafički prikaz kolekcija u C# programskom jeziku )

Kolekcije se nalaze u imenskom prostoru System.Collection. Mogu da budu generičke i negeneričke. Generičke kolekcije su parametorizovane, znači moraju imati određen tip podataka i svi elementi u kolekciji moraju biti istog tipa. Generičke kolekcije se za razliku od negenerički kolekcija nalaze u imenskom prostoru System.Collections.Generic i omogućavaju vam type safe i nemate potrebe za konverzijom vaših podataka. Dok negeneričke kolekcije rade sa tipom podataka object. Na taj način vi negeneričke kolekcije možete koristiti da u njih smestite podatke različitog tipa podataka koje možete kasnije koristiti konverzijom istih kastingom. Negeneričke klase nisu type safe i retko se koriste. Svaka kolekcija da bi uopšte bila kolekcija pre svega mora da implementira enumerator koji može da prođe kroz sve elemente u kolekciji. To u prevodu znači da svaka kolekcija koristi interfejse IEnumerable ili interfejs ICollection koji je izveden iz interfejsa IEnumerable dok se obadva interfejsa nalaze u imenskom prostoru System.Collections. Interfejs ICollection koriste sofisticiranije kolekcije, dok vi takođe možete u vašim klasama koristiti koju hoćete. Međutim neke kolekcije koriste i interfejse IList, negeneričku kolekciju stavki kome se može pristupiti preko indeksa ili IDictionary negeneričku listu parova kojima se pristupa kroz ključ ili vrednost. Vi i sami možete da pravite čak vaše kolekcije ukoliko nasledite apstraktnu baznu klasu CollectionBase u vašu klasu. Kolekcije se deklarišu instanciranjem jer kolekcije jesu klase i isto se deklarišu:

Kolekcija MojaKolekcija = new Kolekcija ();


Posle deklaracije možete da vašoj kolekciji dodajete elemente, menjate, brišete i druge aktivnosti u zavisnosti kakvu kolekciju koristite. Negeneričke liste su vam ArrayList, Queue, Stack, Hashtable i SortedList. Pa krenimo redom.

ArrayList kolekcija