2. В цьому модулі:
Поняття колекції
Класи колекцій ArrayList, HashTable, Stack, Queue, SortedList
Інтерфейси колекцій IList, IEnumerator, IEnumerable, ICollection,
IDictionary, IComparer, IDictionaryEnumerator
Приклади використання класів колекцій для збереження стандартних і
користувацьких типів
2
Andriy Gladkyy
KspDevelop@gmail.com
3. Поняття Колекції
Колекція – це група елементів. В .NET колекції містяться об’єкти, в
тому числі і упаковані типи значень.
Всі класи колекцій находяться в просторі імен System.Collections.
Andriy Gladkyy
KspDevelop@gmail.com 3
4. System.Collections.ArrayList
ArrayList – це клас подібний масиву але він може розширюватись.
При поміщені в колекцію більше елементів ніж місткість колекції то
місткість колекції в два рази збільшується.
Додання елементів в колекцію відбувається за допомогою методів Add()
AddRange()
Місткість колекції можна зменшити до фактичної за допомогою метода
TrimToSize()
Колекція ArrayList сприймає свої об’єкти як object. Тому в дану колекцію
можна помістити об’єкти різних типів.
Метод GetRange() дозволяє сформувати нову колекцію зі значеннями
елементів, взятих з вказаного діапазону вхідної колекції.
Для видалення елементів з колекції ArrayList по заданому індексу можна
за допомогою методу RemoveAt()
Метод Sort() дозволяє сортувати колекцію по принципу, що залежить від
типу елементів
Andriy Gladkyy
KspDevelop@gmail.com 4
ArrayList arr = new ArrayList()
6. System.Collections.Stack
Тип колекції, що ідеально підходить для тимчасового розміщення
об’єктів, які після використання будуть видалені.
Дана колекція працює за принципом LIFO (last-in-first-out).
Елементи добавляються в колекції за допомогою метода Push();
Витягуються за допомогою метода Pop();
Для отримання значення елемента який останній був доданий до
колекції необхідно застосувати метод Peek(), який не видаляє елементи
з колекції на відміну від Pop()
Звернутися за індексом до елементу даної колекції не можна
Для перевірки, чи містить колекція задане значення застосовується
метод Contains, яка повертає true у випадку позитивного результату і
false в іншому випадку
Для копіювання колекції в масив застосовується метод CopyTo()
Andriy Gladkyy
KspDevelop@gmail.com 6
Stack st = new Stack()
8. System.Collections.Queue
Дана колекція відрізняється від колекції Stack тим, що вона
організована за принципом FIFO (first-in-first-out), за яким працює
черга.
Індексація до даної колекції не застосовується
Для поміщення елементів в колекцію використовується метод
Enqueue()
Для видалення елементів з колекції використовується метод Dequeue()
Метод Peek() повертає значення елемента, який був першим
поміщений в колекцію (при цьому не видаляє його)
Andriy Gladkyy
KspDevelop@gmail.com 8
10. System.Collections.SortedList
Представляє собою колекцію пар об’єктів ключ-значення, які
сортуються по ключі і доступ до елементів якою може бути отриманий
по ключу і по індексу.
По замовчуванню ємність колекції дорівнює нулю.
При додані першого елемента ємність встановлюється в 16 елементів.
При переповнені даної позначки пам’ять подвоюється
Для додання пари лементів в колекцію використовується метод Add(),
при цьому задається ключ і значення.
Елементи поміщені в колекцію SortedList автоматично будуть
відсортовані по ключу
Для видалення елементів по ключу застосовується метод Remove()
Для видалення елементів по індексу застосовується метод RemoveAt()
Пара ключ-значення не обов’язково повинні бути одного типу. Але всі
пари повинні бути однорідними, тобто ключі одного і того самого
типу, всі значення одного і того самого типу. Колекція не може
сортувати об’єкти (ключі) різних типів.
Andriy Gladkyy
KspDevelop@gmail.com 10
12. System.Collections.Hashtable
Представляю собою набір даних, що містять пари ключ-значення, які
відносяться до типу object.
Дана колекція відноситься до групи словників, де по ключу ми
можемо отримати доступ до значення.
Ключі і значення можуть бути різних типів не тільки в межах пари а і
межах колекції.
Щоб добавити пару в колекцію використовується метод Add()
Щоб видалити пару з колекції використовується метод Remove()
Перевірити чи колекція містить задане значення можна вказати його
ключ як параметр методу Contains()
Andriy Gladkyy
KspDevelop@gmail.com 12
18. Andriy Gladkyy
KspDevelop@gmail.com 18
Створити примітивний англо-український і українсько-англійський
словник, що містить пари слів – назви країн по українські і англійські.
Користувач повинен мати можливість вибрати напрямок перекладу.