Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MU_Prakticheskie_raboty_OPI.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
9.91 Mб
Скачать

Встроенный сервис по обслуживанию массивов

Массивам соответствует свой класс System.Array, который позволяет с ними работать. Этот класс характеризуется специальным набором свойств и методов для создания, управления, поиска, и сортировки, элементов массива представленных в таблице 7.1.

Для использования свойств операнд принимает вид:

Имя_массива. Свойство;

Для использования методов оператор:

Array. Метод(параметры);

либо Имя_массива. Метод(параметры);

Таблица 7.1. Набор свойств и методов для работы с массивами.

Название

Описание

Свойство Length

Возвращает целое число представляющее общее количество элементов во всех измерениях массива.

Свойство Rank

Возвращает целое число представляющее количество измерений (размерность) массива.

Метод

Array CreateInstance()

Статический метод (один из вариантов), создаёт массив элементов заданного типа и определённой размерности.

Метод GetLength ()

Возвращает количество элементов в указной размерности массива.

Метод SetValue()

Присваивает элементу массива значение, представленное первым параметром (один из вариантов).

Метод GetValue()

Извлекает значение из двумерного массива по индексам (один из вариантов).

Метод Sort()

Позволяет сортировать одномерный массив, массив передается как параметр

Метод Clear()

Устанавливает элементы массива в 0 для массивов, содержащих значения, null – содержащих ссылки, false – логического типа

Метод Clone()

Для создания копии массива, при этом копируются лишь ссылки, сами объекты копироваться не будут

Практична робота № 8 Використання колекцій в c # Цель: овладеть возможностью использования коллекций.

Ход работи:

Написать следующие программы:

  1. Создать коллекцию типа ArrayList и вывести ее содержимое используя перечислитель IEnumerator. (TestArrayList)

  2. Создать коллекцию типа SortedList и вывести определенный элемент по ключу и по индексу. (TestSortedList)

  3. Создать коллекцию типа Stack с тремя значениями. Вывести на экран содержимое стека и первый доступный элемент. (TestStack)

  4. Используя коллекцию Dictionary, написать программу, которая при вводе цифры в виде строки выводила ее эквивалент в виде цифры. (UsingDictionary)

Теоретические сведения.

Коллекции.

В C# поддерживаются структуры данных, состоящие из групп однотипных объектов.

Все коллекции хранятся в классе System.Collections.

ArrayList. Массив-список.

Представляет собой упорядоченную коллекцию объектов, доступ к которым можно получить, используя индекс. Очень похож на массив, за исключением того, что он имеет возможность расширения. Эта структура данных представляет собой класс System.Collections.ArrayList.

Простейшая форма создания экземпляра этого класса:

//создается объект ArrayList емкостью 16 ссылок

ArrayList myArrList = new ArrayList();

Обратим внимание, что:

//создается объект ArrayList емкостью 20 ссылок

ArrayList myArrList = new ArrayList(20);

//устанавливаем емкость объекта ArrayList непосредственно после обычного создания экземпляра, используя свойство:

myArrList.Capacity = 25;

Изменение емкости перемещает весь ArrayList в новый блок памяти указанного размера.

Изначально емкость ArrayList равна 16 элементов. Идея ArrayList состоит в том, что он может расти при необходимости. Когда добавляется 17-й элемент к ArrayList по умолчанию, то при этом создается новый объект ArrayList, который имеет вдвое большую емкость- то есть 32 элемента. Когда новый объект создан, содержимое исходного объекта копируется в этот новый экземпляр. После чего исходный объект ArrayList помечается для удаления сборщиком мусора. Аналогично он ведет себя, когда емкость задается самостоятельно.

Свойства ArrayList:

Наименование

Описание

Count

Количество элементов в ArrayList

Capacity

Емкость ArrayList

Методы ArrayList:

Наименование

Описание

Add()

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

AddRange()

Добавляет в конец коллекции набор элементов из другой коллекции

Remove

Удаляет первое вхождение указанного объекта

RemoveAt()

Удаляет элемент по указанному индексу

RemoveRange()

Удаляет заданное количество элементов, начиная с указанного индекса

Clear()

Удаляет все элементы из коллекции

Insert()

Вставляет элемент в коллекцию по указанному индексу

Sort()

Для сортировки элементов

Reverse()

Меняет порядок элементов на противоположный

TrimToSize()

Устанавливает число возможных элементов в коллекции равным числу реально существующих элементов в этой коллекции

Независимо от типа коллекции все перечислители порождены от интерфейса IEnumerator, который содержит два удобных метода: MoveNext() - который позволяет перейти на следующий элемент (первое использование осуществляет переход на первый элемент) и Reset() - который устанавливает перечислитель к исходной позиции.

SortedList.

Позволяет получить доступ к данным, как по ключу, так и по индексу.

Для доступа по индексу используется метод GetByIndex().

Queue.

Все предыдущие коллекции допускали доступ к элементам в произвольном порядке. Коллекция Queue обеспечивает исключительно последовательный доступ. Он осуществляется по принципу «первый пришел, первый ушел».

Методы Queue:

Наименование

Описание

Enqueue()

позволяет добавить элемент в хвост очереди

Dequeue()

позволяет извлечь элемент из начала очереди

Peek()

можно прочитать значение элемента без удаления из очереди

Contains()

определяет, содержится ли элемент в очереди

Stack.

Представляет собой структуру наподобие очереди. Элементы извлекаются из стека по принципу «последним пришел – первым ушел». Подходит для работы с элементами, которые рассматриваются, как временные и удаляются после использования в приложении.

Методы Stack:

Наименование

Описание

Push()

позволяет добавить элемент в вершину

Pop()

извлекает элемент из вершины стека

Peek()

позволяет получить значение элемента в вершине стека без его извлечения

Hashtable. Dictionary.

Коллекция Hashtable предназначена для хранения элементов в виде хэш-таблицы. При добавлении элемента в методе Add указывается два параметра – это ключ и элемент, который мы хотим добавить в таблицу. Хэш-таблицы гораздо быстрее позволяют произвести поиск элементов, чем ArrayList, но в то же время имеют меньше возможностей.

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

Свойства:

Наименование

Описание

Keys

список ключей коллекции

Values

список значений колекции

Методы:

Наименование

Описание

Add()

принимает два параметра – оба объектные ссылки (первая – ссылка на ключ, вторая – ссылка на данные)

Remove()

удаление элемента по указанному ключу

ContainsKey()

позволяет удостовериться в наличии ключа в хэш-таблице

ContainsValue()

позволяет проверить наличие определенного элемента

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]