Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гавно для печати.docx
Скачиваний:
12
Добавлен:
21.09.2019
Размер:
171.17 Кб
Скачать

38. Классы ArrayList, Queue, Stack. Методы работы с различными структурами данных.

Под коллекцией понимается группа (набор) разнотипных объектов. Коллекции (C#, Java) называют еще семейства (VBA), контейнеры (C++). Коллекции стандартизируют способ обработки групп объектов в приложениях. Коллекции упрощают программирование, предлагая строить структуры данных не с нуля. Пример примитивной коллекции – System.Array. В нем есть такие методы как сортировка, инвертирование, очистка, перечисление. Но класс Array имеет свои ограничения, и наиболее важным из них является невозможность динамического переопределения размеров при добавлении и удалении элементов.

Коллекции общего назначения реализуют такие структуры данных для временного хранения информации как динамический массив, стек, очередь. Динамический массив – это массив, который может изменять свой размер при удалении и добавлении. Очередь – это последовательный набор элементов одного типа, который может сокращаться с одного конца, а расширяется с другого (конца очереди).

Классы

Описание

Реализуемые интерфейсы

ArrayList

Динамически изменяемый по размерам массив объектов любого типа

IList, ICloneable, ICollection, IEnumerable

Hashtable

Коллекция объектов идентифицируемая по числовому ключу(наши классы должны переопределять метод System.Object.GetHashCode)

ICloneable, IDictionary, IEnumerable, ICollection

Queue

Стандартная очередь или последовательный список(каждый объект обрабатывается по порядку)

ICloneable, ICollection, IEnumerable

Stack

Стек (LIFO)

ICloneable, ICollection, IEnumerable

SortedList

Упорядоченный список, подобен словарю(доступ по ключу и индексу)

ICloneable, ICollection, IEnumerable, IDictionary

ArrayList. Экземпляр этого класса представляет собой массив переменной длины, объектами являются объектные ссылки. Point T1=new Point(5,8); T1 – объектная ссылка. Любой экземпляр создается с некоторым начальным размером. При превышении размера коллекция авторматически его увеличивает, при удалении – сокращает. Этот класс наиболее употребим, т.к. он использует интерфейс ArrayList, то в нем реализованы такие элементы, как индексатор: object this [ int index] { get; set; }

int Add(object value); // метод добавления объекта в коллекцию, возвращает индекс. void Clear(); // удаление всех элементов из массива void Insert(int index, object value) // метод вставки объекта по индексу. Помимо реализации интерфейсных членов в классе ArrayList имеются свои классы, конструкторы. Конструктор класса ArrayList: public ArrayList(); // создает пустой массив и его емкость элементов. public ArrayList(int capacity); // конструктор с параметром. public ArrayList(ICollection collect); Некоторые собственные коллекции классов ArrayList: AddRange(ICollection collect) // добавляем элементы из коллекции. Sort(IComparer comp) // сортирует динамический массив на основе метода сравнения CompareTo интерфейса IComparer. Binary Search(object value) // возвращает индекснайденного элемента или отриц. число и др. методы. В нем имеется св-во capacity – емкость массива.