попередній таблиці. [4]
Таблиця 3 - Класи колекцій
НазваніеОпісаніеList lt; T gt; Клас, що представляє послідовний список. Реалізує інтерфейси IList lt; T gt ;, ICollection lt; T gt ;, IEnumerable lt; T gt; Dictionary lt; TKey, TValue gt; Клас колекції, що зберігає набори пар ключ-значення raquo ;. Реалізує інтерфейси icollection lt; T gt ;, ienumerable lt; T gt ;, idictionary lt; tkey, tvalue gt; LinkedList lt; T gt; Клас двох пов'язаного списку. Реалізує інтерфейси icollection lt; t gt; і ienumerable lt; t gt; Queue lt; T gt; Клас черзі об'єктів, що працює за алгоритмом LIFO ( першим прийшов - першим вийшов ). Реалізує інтерфейси icollection, ienumerable lt; T gt; SortedSet lt; T gt; Клас відсортованої колекції однотипних об'єктів. Реалізує інтерфейси ICollection lt; T gt ;, ISet lt; T gt ;, IEnumerable lt; T gt; SortedList lt; TKey, TValue gt; Клас колекції, що зберігає набори пар ключ-значення raquo ;, відсортованих по ключу. Реалізує інтерфейси ICollection lt; T gt ;, IEnumerable lt; T gt ;, IDictionary lt; TKey, TValue gt; SortedDictionary lt; TKey, TValue gt; Клас колекції, що зберігає набори пар ключ-значення raquo ;, відсортованих по ключу. Схожий на клас SortedList lt; TKey, TValue gt ;. Основні відмінності полягають лише у використанні пам'яті і в швидкості вставки і удаленіяStack lt; T gt; Клас стека однотипних об'єктів. Реалізує інтерфейси ICollection lt; T gt; і IEnumerable lt; T gt;
Більшість узагальнених класів колекцій дублюють неузагальнених класи колекцій. Але якщо не треба зберігати об'єкти різних типів, то краще використовувати узагальнені колекції. [3]
. 1 Основні узагальнені колекції
Список List lt; T gt;
Клас List lt; T gt; представляє найпростіший список однотипних об'єктів.
Серед його методів можна виділити наступні:
) void Add (T item): додавання нового елементу в список;
) void AddRange (ICollection collection): додавання в список колекції або масиву;
) int BinarySearch (T item): бінарний пошук елемента в списку. Якщо елемент знайдено, то метод повертає індекс цього елемента в колекції. При цьому список повинен бути відсортований;
) int IndexOf (T item): повертає індекс першого входження елемента в списку;
) void Insert (int index, T item): вставляє елемент item в списку на позицію index;
) bool Remove (T item): видаляє елемент item із списку, і якщо видалення пройшло успішно, то повертає true;
) void RemoveAt (int index): видалення елемента за вказаною індексом index;
) void Sort (): сортування списку.
У лістингу 2 (див. Додаток А) представлений приклад програми, що реалізує список List lt; T gt; запозичений з джерела [3].
У ньому створюються два списки: один для об'єктів типу int, а інший - для об'єктів Person. У першому випадку виконується початкова ініціалізація списку: List numbers=new List lt; int gt; () {1, 2, 3, 45};
У другому випадку використовується інший конструктор, в який передається початкова ємність списку: List lt; Person gt; persons=new List lt; Person gt; (3) [3].
Вказівка ??початкової ємності списку (capacity) дозволяє в майбутньому збільшити продуктивність і зменшити витрати на виділення пам'яті при додаванні елементів. Також початкову ємність можна встановити за допомогою властивості Capacity, яке є у класу List. [3]
Черга Queue lt; T gt;
Клас Queue lt; T gt; представляє звичайну чергу, працюючу за алгоритмом FIFO ( першим прийшов - першим вийшов ). [3]
У класу Queue lt; T gt; можна відзначити наступні методи:
) Dequeue: витягує і повертає перший елемент черги;
) Enqueue: додає елемент в кінець черги;
) Peek: просто повертає перший елемент з початку черги без його видалення.
У лістингу 3 представлений приклад програми з джерела [3], що використовує клас Queue lt; T gt ;. Результат роботи програми представлений на рисунку А.2. На малюнку 1 показано виставу черги.
Малюнок 1 - Черга Queue lt; T gt;
Стек Stack lt; T gt;
Клас Stack lt; T gt; представляє колекцію, яка використовує алгоритм LIFO ( останній увійшов - перший вийшов ). При такій організації кожен наступний доданий елемент поміщається поверх попереднього. Витяг з колекції відбувається в зворотному порядку - витягується той ел...