- •Содержание
- •Введение
- •Коллекции в .Net
- •Виды коллекций
- •Типы коллекций
- •Интерфейсы, используемые коллекциями
- •Необобщенные коллекции
- •Обобщенные коллекции
- •Основные обобщенные коллекции
- •Параллельные коллекции
- •Специальные и наблюдаемые коллекции
- •Специальные коллекции
- •Наблюдаемые коллекции
- •Битовые коллекции
- •Класс BitArray
- •Структура BitVector32
- •Реализация интерфейса iComparable
- •Реализация интерфейса iComparer
- •Перечислители
- •Применение обычного перечислителя
- •Применение перечислителя типа iDictionaryEnumerator
- •Реализация интерфейсов iEnumerable и iEnumerator
- •Итераторы и оператор yield
- •Именованный итератор
- •Заключение
- •Список использованных источников
- •Приложение а (обязательное) Листинги и результаты работы программ
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
«Комсомольский-на-Амуре государственный
технический университет»
Факультет компьютерный технологий
Кафедра МОП ЭВМ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
по дисциплине «Технологии программирования»
Коллекции
Студент группы 2ИСб-1 _________________ Т.И. Курдюмова
подпись, дата
Руководитель проекта _________________ С.Ю. Александров
подпись, дата
Нормоконтролёр _________________ С.Ю. Александров
подпись, дата
2014
Содержание
Содержание 3
Введение 5
1 Коллекции в .Net 6
1.1 Виды коллекций 6
1.2 Интерфейсы, используемые коллекциями 9
2 Необобщенные коллекции 17
3 Обобщенные коллекции 20
3.1 Основные обобщенные коллекции 22
4 Параллельные коллекции 38
5 Специальные и наблюдаемые коллекции 41
5.1 Специальные коллекции 41
5.2 Наблюдаемые коллекции 42
6 Битовые коллекции 44
6.1 Класс BitArray 44
6.2 Структура BitVector32 46
7 Реализация интерфейса IComparable 48
8 Реализация интерфейса IComparer 50
9 Перечислители 52
9.1 Применение обычного перечислителя 53
9.2 Применение перечислителя типа IDictionaryEnumerator 54
9.3 Реализация интерфейсов IEnumerable и IEnumerator 54
10 Итераторы и оператор yield 56
10.1 Именованный итератор 59
Заключение 61
Список использованных источников 62
ПРИЛОЖЕНИЕ А 63
Введение
Коллекция это совокупность объектов, с которыми можно совершать различные действия. Если требуется снизить трудоемкость разработки структур данных именно коллекции приходят на помощь.
Элементы объединяют в коллекции по какому-либо признаку и потом используют их. Это нужно для того, чтобы не приходилось писать код для каждого элемента отдельно. Ведь можно написать один блок, который будет управлять всеми элементами сразу.
Элементы в коллекциях можно изменять, их можно удалять, а также добавлять новые. Размерность коллекций при этом изменяется автоматически, поэтому ее не нужно переопределять, что значительно облегчает работу. В этой работе я рассмотрю основные виды и типы коллекций, а также интерфейсы, используемые коллекциями. Приведу примеры использования коллекций и правила их реализации.
Коллекции в .Net
В .NET коллекция представляет собой объект. Даже самый примитивный массив является объектом. Массив можно создать, у него есть методы и свойства, и как все другие классы, он является ссылочным типом. [1]
Ниже представлен пример использования простой коллекции. Сначала создается список строк, а затем просматриваются строки с помощью оператора foreach. [1]
Рассмотрим виды и типы коллекций.
Виды коллекций
Коллекция – некоторая конечная совокупность объектов, с которой можно совершать те или иные действия. Так, обычно по отношению к коллекции можно осуществлять перебор ее элементов. Физические реализации коллекций могут быть совершенно разными. Во Framework Class Library (FCL) коллекции в основном размещаются в пространстве имен System.Collections. Их список приведен в таблице 1. [1]
Таблица 1.1 – Коллекции, доступные в .NET Framework
Тип коллекции |
Назначение |
Встроенные массивы |
Обычные массивы, поддерживаемые CLR (Common Language Runtim) напрямую. В совестимых с CLR языках они являются полноценными объектами. |
Продолжение таблицы 1.1
ArrayList |
Является реализацией абстракции списка на базе массива, Позволяет динамически изменять размер, добавлять и удалять элементы. По сути, динамический массив, позволяющий хранить ссылки на объекты. |
Hashtable |
Реализует абстракцию «словарь» (Dictionary, коллекцию пар «ключ-значение») на основе алгоритма хэш-таблицы. |
SortedList |
Реализация абстракции словаря и списка на базе сортированного массива. |
Stack |
Реализует абстракцию «стек» – коллекцию, позволяющую осуществлять доступ к элементам по принципу FILO (First In – Last Out, первым пришел – последним ушел). В качестве хранилища используется массив. |
Queue |
Реализует абстракцию «очередь» – коллекцию, позволяющую осуществлять доступ к элементам по принципу FIFO (First In – First Out, первым пришел – первым ушел). В качестве хранилища используется массив. |
BitArray |
Позволяет создавать битовые массивы и управлять ими. |
В .NET Framework массив не относится к числу коллекций, хотя по своему предназначению массивы тоже являются коллекциями. Массивы отделены от коллекций потому, что они поддерживаются средой исполнения непосредственно. [1]
