Файл: Лабораторная работа 8 Разработка приложений с использованием коллекций.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 93

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Помимо методов, определенных в интерфейсах, которые реализует класс ArrayList, в нем определены и собственные методы:


Метод

Описание

public virtual void AddRange(ICollection c)

Добавляет элементы из коллекции c в конец вызывающей коллекции

public virtual int BinarySearch(object v)

Выполняет поиск элемента v. Возвращает его индекс или отрицательное значение, если элемента нет. Вызывающий список должен быть отсортирован

public virtual int BinarySearch(object v, IComparer comp)

Выполняет поиск элемента v на основе метода сравнения объектов, заданного параметром comp. Возвращает индекс элемента или отрицательное значение, если элемента нет. Вызывающий список должен быть отсортирован

public virtual int BinarySearch(int startIdx, int count, object v, IComparer comp)

Выполняет поиск элемента v на основе метода сравнения объектов, заданного параметром comp. Поиск начинается с элемента startIdx и включает count элементов. Возвращает индекс элемента или отрицательное значение, если элемента нет. Вызывающий список должен быть отсортирован

public virtual void CopyTo(Array ar, int startIdx)

Копирует содержимое вызывающей коллекции, начиная с элемента с индексом startIdx, в массив ar

public virtual void CopyTo(int srcIdx, Array ar, int destIdx, int count)

Копирует count элементов вызывающей коллекции, начиная с индекса startIdx, в массив ar, начиная с элемента с индексом destIdx

public virtual ArrayList GetRange(int idx, int count)

Возвращает часть вызывающей коллекции. Диапазон начинается с индекса idx и включает count элементов.

public static ArrayList FixedSize(ArrayList ar)

Превращает коллекцию ar в ArrayList-массив с фиксированным размером и возвращает результат

public virtual void InsertRange(int startIdx,ICollection c)

Вставляет элементы коллекции c в вызывающую коллекцию, начиная с индекса startIdx

public virtual int LastIndexOf(object v)

Возвращает индекс последнего вхождения объекта v в вызывающую коллекцию (-1, если объект не обнаружен)

public static ArrayList ReadOnly(ArrayList ar)

Превращает коллекцию ar в ArrayList-массив, предназначенный только для чтения, и возвращает результат

public virtual void RemoveRange(int idx, int count)

Удаляет count элементов из вызывающей коллекции, начиная с элемента с индексом idx

public virtual void Reverse()

Располагает элементы вызывающей коллекции в обратном порядке

public virtual void Reverse(int startIdx, int count)

Располагает в обратном порядке count элементов вызывающей коллекции, начиная с индекса startIdx

public virtual void SetRange(int startIdx, ICollection c)

Заменяет элементы вызывающей коллекции, начиная с индекса startIdx, элементами коллекции c

public virtual void Sort()

Сортирует коллекцию по возрастанию

public virtual void Sort(IComparer comp)

Сортирует вызывающую коллекцию на основе метода сравнения объектов comp

public virtual void Sort(int startIdx, int endIdx, IComparer comp)

Сортирует часть вызывающей коллекции на основе метода сравнения объектов comp. Сортировка начинается с индекса startIdx и заканчивается индексом endIdx

public static ArrayList Synchronized(ArrayList list)

Возвращает синхронизированную версию вызывающей коллекции

public virtual object[] ToArray()

Возвращает массив, который содержит копии элементов вызывающего объекта

public virtual Array ToArray(Type type)

Возвращает массив, который содержит копии элементов вызывающего объекта. Тип элементов в этом массиве задается параметром type

public virtual void TrimToSize()

Устанавливает свойство Capacity равным значению свойства Count



Помимо свойств, определенных в интерфейсах, реализуемых классом ArrayList, в нем также определено свойство Capacity:

public virtual int Capacity { get; set; }

Оно позволяет узнать или установить емкость вызывающего массива. Емкость – это количество элементов, которые можно сохранить в массиве без его увеличения.
Класс HashTable предназначен для создания коллекции, в которой для хранения объектов используется хеш-таблица. Этот класс реализует интерфейсы IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallBack и ICloneable.

В классе HashTable определено множество конструкторов, включая следующие (они используются чаще всего):


Прототип

конструктора

Описание

public HashTable()

Создает стандартный объект класса HashTable

public HashTable (IDictionary c)

Инициализирует создаваемый объект элементами коллекции c

public HashTable (int capacity)

Инициализирует емкость создаваемой хеш-таблицы значением capacity

public HashTable (int capacity, float fillRatio)

Инициализирует емкость создаваемой хеш-таблицы (значением capacity) и коэффициент заполнения (значением fillRatio). Значение этого коэффициента (от 0,1 до 1,0) определяет степень заполнения хеш-таблицы, после чего ее размер увеличивается


В классе HashTable помимо методов, определенных в реализуемых им интерфейсах, определены собственные методы. Наиболее употребляемые из них перечислены в таблице:


Метод

Описание

public virtual bool ContainsKey(object k)

Возвращает true, если в вызывающей хеш-таблице содержится ключ k, иначе false

public virtual bool ContainsValue(object v)

Возвращает true, если в вызывающей хеш-таблице содержится значение v, иначе false

public virtual IDictionaryEnumerator GetEnumerator()

Возвращает для вызывающей хеш-таблицы нумератор типа IDictionaryEnumerator

public static HashTable Synchronized(HashTable ht)

Возвращает синхронизированную версию хеш-таблицы ht


В классе HashTable

, помимо свойств, определенных в реализуемых им интерфейсах, определены два собственных свойства. С их помощью можно из хеш-таблицы получить коллекцию ключей или значений:

public virtual ICollection Keys { get; }

public virtual ICollection Values { get; }

Важно отметить, что HashTable-коллекция не гарантирует сохранения порядка элементов, т.к. хеширование обычно не применяется к отсортированным таблицам.
Класс SortedList предназначен для создания коллекции, которая хранит пары ключ/значение в упорядоченном виде, а именно отсортированы по ключу. Этот класс реализует интерфейсы IDictionary, ICollection, IEnumerable и ICloneable.

В классе SortedList определено несколько конструкторов, включая следующие:



Прототип

конструктора

Описание

public SortedList()

Создает пустую коллекцию емкостью 16 элементов

public SortedList (IDictionary c)

Создает SortedList-коллекцию и инициализирует ее элементами коллекции c

public SortedList (int capacity)

Создает пустую коллекцию емкостью capacity

public SortedList (IComparer comp)

Создает пустую коллекцию емкостью 16 элементов и задает для них метод сравнения comp


В классе SortedList помимо методов, определенных в реализуемых им интерфейсах, также определены собственные методы. Наиболее часто употребляемые из них перечислены в таблице:


Метод

Описание

public virtual bool ContainsKey(object k)

Возвращает true, если в вызывающей SortList-коллекции содержится ключ k, иначе false

public virtual bool ContainsValue(object v)

Возвращает true, если в вызывающей SortList-коллекции содержится значение v, иначе false

public virtual object GetByIndex(int idx)

Возвращает значение, индекс которого равен idx

public virtual IDictionaryEnumerator GetEnumerator()

Возвращает для вызывающей SortList-коллекции нумератор типа IDictionaryEnumerator

public virtual object GetKey(int idx)

Возвращает ключ, индекс которого равен idx

public virtual IList GetKeyList()

Возвращает IList-коллекцию ключей, хранимых в вызывающей SortList-коллекции

public virtual IList GetValueList()

Возвращает IList-коллекцию значений, хранимых в вызывающей SortList-коллекции

public virtual int IndexOfKey(object k)

Возвращает индекс ключа k или -1, если заданного ключа в списке нет

public virtual int IndexOfValue(object v)

Возвращает индекс первого вхождения значения v или -1, если этого значения в списке нет

public virtual void SetByIndex(int idx, object v)

Устанавливает значение по индексу idx равным значению v

public static SortedList Synchronized(SortedList sl)

Возвращает синхронизированную версию SortList-коллекции sl

public virtual void TrimToSize()

Устанавливает свойство Capacity равным значению свойства Count



В классе SortedList, помимо свойств, определенных в реализуемых им интерфейсах, определены два собственных свойства. Получить предназначенную только для чтения коллекцию ключей или значений, хранимых в SortedList-коллекции, можно с помощью свойств:

public virtual ICollection Keys { get; }

public virtual ICollection Values { get; }
Класс коллекции, предназначенный для поддержки стека, называется Stack. Он реализует интерфейсы ICollection, IEnumerable и ICloneable. Стек – это динамическая коллекция, которая при необходимости увеличивается, чтобы принять для хранения новые элементы, причем каждый раз, когда стек должен расшириться, его емкость удваивается.

В классе Stack определены следующие конструкторы:


Прототип

конструктора

Описание

public Stack()

Создает пустой стек емкостью 10 элементов

public Stack(int capacity)

Создает пустой стек с начальной емкостью capacity

public Stack (ICollection c)

Создает стек, который инициализируется элементами коллекции c


Помимо методов, определенных в интерфейсах, которые реализует класс Stack, в нем определены собственные методы, перечисленные в таблице:


Метод

Описание

public virtual bool Contains(object v)

Возвращает true, если в вызывающем стеке содержится объект v, иначе false

public virtual void Clear()

Очищает стек (устанавливает свойство Count равным нулю)

public virtual object Peek()

Возвращает элемент, расположенный в вершине стека, но не удаляет его

public virtual object Pop()

Возвращает элемент, расположенный в вершине стека, и удаляет его

public virtual void Push(object v)

Помещает объект v в стек

public static Stack Synchronized(Stack stk)

Возвращает синхронизированную версию стека stk

public virtual object[] ToArray()

Возвращает массив, который содержит копии элементов вызывающего стека



Класс коллекции, предназначенный для поддержки очереди, называется Queue. Он реализует интерфейсы ICollection, IEnumerable и ICloneable. Очередь – это динамическая коллекция, которая при необходимости увеличивается, чтобы принять для хранения новые элементы, причем каждый раз, когда такая необходимость возникает, текущий размер очереди умножается на коэффициент роста, который по умолчания равен значению 2,0.

В классе Queue определены следующие конструкторы:


Конструктор

Описание

public Queue()

Создает пустую очередь с начальной емкостью в 32 элемента и коэффициентом роста 2,0

public Queue(int capacity)

Создает пустую очередь с начальной емкостью capacity и коэффициентом роста 2,0

public Queue(int capacity, float growFact)

Создает пустую очередь с начальной емкостью capacity и коэффициентом роста growFact

public Queue (ICollection c)

Создает очередь, которая инициализируется элементами коллекции с


Помимо методов, определенных в интерфейсах, которые реализует класс Queue, в нем определены также собственные методы, перечисленные в таблице.


Метод

Описание

public virtual bool Contains(object v)

Возвращает true, если в вызывающей очереди содержится объект v, иначе false

public virtual void Clear()

Очищает очередь (устанавливает свойство Count равным нулю)

public virtual object Dequeue()

Возвращает объекта из начала вызывающей очереди, при этом объект из очереди удаляется

public virtual void Enqueue(object v)

Добавляет объект v в конец очереди

public virtual object Peek()

Возвращает элемент из начала вызывающей очереди, но не удаляет его

public static Queue Synchronized(Queue q)

Возвращает синхронизированную версию очереди q

public virtual object[] ToArray()

Возвращает массив, который содержит копии элементов вызывающей очереди

public virtual void TrimToSize()

Устанавливает свойство Capacity равным значению свойства Count