Kolekcje w języku C#

Kolekcje - zbiory elementów różnego lub tego samego typu.


Kolekcje możemy porównać do tablic jednak kolekcje zamiast przetrzymywać typy wartościowe przetrzymują elementy kolekcji jako obiekty. Niesie to ze sobą pewne konsekwencje. Tablica przechowuje dane określonego typu natomiast kolekcja przetrzymuje wszystko jako obiekty, nie musimy podawać typu więc za każdym razem musi zostać wykonane rzutowanie. Kolekcje w przeciwieństwie do tablic nie mają określonego rozmiaru, w zależności od potrzeb zmieniają dynamicznie rozmiar.

Więcej informacji na temat kolekcji:

http://msdn.microsoft.com/pl-pl/library/System.Collections.aspx

Kolekcja ArrayList

Kolekcja ArrayList jest bardzo podobna do tablic i można ją traktować jako ulepszenie tablic. Pozwala w przeciwieństwie do tablic usuwać lub dodawać elementy w środku zbioru, pozostałe elementy zostają przesunięte.

Wybrane metody dostępne w ArrayList:

  • Add() - dodaje obiekt na końcu kolekcji ArrayList,
  • Remove() - usuwa wybrany element z kolekcji,
  • Insert() - dodaje element do kolekcji pod określonym indeksem,
  • Clear() - czyści zawartość kolekcji,
  • ToArray() - kopiuje zawartość kolekcji do tablicy obiektów,
  • IndexOf() - wyszukuje indeks wybranego elementu,
  • RemoveRange() - kasuje elementy z określonego przedziału.
  • Sort() - sortuje elementy,
  • Reverse() - odwraca kolejność elementów kolekcji.

Więcej informacji na temat kolekcji ArrayList:

http://msdn.microsoft.com/pl-pl/library/system.collections.arraylist.aspx

Kolekcja HashTable

HashTable pozwala na użycie innych indeksów aniżeli liczby całkowite. Składa się z dwóch tablic, w której jedna tablica przechowuje klucze a druga wartości przypisane tym kluczom. Zarówno klucz jak i wartość są obiektami. Klucze nie mogą się powtarzać, dlatego została zaimplementowana metoda ContainsKey(), która sprawdza czy dany klucz już istnieje. W kolekcji HashTable nie ma typowania, dlatego możemy używać różnych typów w obrębie jednej kolekcji. Kolekcja HashTable jest Thread Safety a więc możemy z niej korzystać w aplikacji wielowątkowej, wiele wątków może w tym samym czasie odczytywać dane z kolekcji jednak tylko jeden wątek może zapisywać do kolekcji.

Więcej informacji na temat kolekcji HashTable:

http://msdn.microsoft.com/pl-pl/library/system.collections.hashtable.aspx

Kolekcja SortedList

Kolekcja SortedList działa podobnie do HashTable jednak wartości w kolekcji są sortowane po kluczach. Podczas umieszczania elementów w kolekcji, automatycznie zostaje on umieszczony w odpowiednim miejscu.

Więcej informacji na temat kolekcji SortedList:

http://msdn.microsoft.com/pl-pl/library/system.collections.sortedlist.aspx

Kolekcja Queue - Kolejka

Kolekcja Queue działa według mechanizmu FIFO. Elementy dodawane do kolejki zawsze zostaje umieszczony na końcu, natomiast elementy pobierane są z początku. Za pomocą metody Equeue() dodajemy elementy do kolejki, natomiast za pomocą metody Dequeue() pobieramy elementy z kolejki.

Więcej informacji na temat kolekcji Queue:

http://msdn.microsoft.com/pl-pl/library/system.collections.queue.aspx

Kolekcja Stack - Stos

Kolekcja Stack działa według mechanizmu LIFO. Elementy zarówno dodawane jak i pobierane są ze spodu stosu. Ostatnio dodany element będzie pierwszym elementem do pobrania ze stosu. Za pomocą metody Push() dodajemy elementy do stosu, natomiast za pomocą metody Pop() wyciągamy elementy ze stosu.

Więcej informacji na temat kolekcji Stack:

http://msdn.microsoft.com/pl-pl/library/system.collections.stack.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):