Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Работа с наборами данных. Массивы. Коллекции (C#, лекция 4)

Содержание

Работа с наборами данныхКак хранить и обрабатывать наборы данных?МассивыКоллекции
Лекция 4 Работа с наборами данныхКак хранить и обрабатывать наборы данных?МассивыКоллекции МассивыОграничивается доступным размером памяти*Размер массива должен быть указан при его создании. Массивы МассивыМассив является индексированной коллекцией объектов. Одномерный массив объектов объявляется следующим образом.		type[] arrayName; Многомерный массивКонцептуально, многомерный массив с двумя измерениями напоминает сетку (таблицу). Многомерный массив Массив массивовОдним из вариантов многомерного массива является массив массивов. Массив массивов представляет Массив массивовШаг 1: выделяем память под одномерный массив.	int[][] jaggedArray = new int[3][];Шаг Массив объектовСоздание массива объектов в отличие от создания массива простых типов данных Массив объектовСоздадим классclass Class1 {int x;}Теперь создадим массив от этого классаClass1[] mas Другие коллекцииРассмотрим другие коллекции, часто используемые в программировании:ArrayListListDictionaryStackQueue Библиотеки с коллекциямиБольшая часть классов коллекций содержится в пространствах имен System.Collections, System.Collections.Generic Основа коллекцийОсновой для создания всех коллекций является реализация интерфейсов IEnumerator и IEnumerable. IEnumeratorИнтерфейс IEnumerator представляет перечислитель, с помощью которого становится возможен последовательный перебор коллекции, например, в цикле foreach. IEnumerable Интерфейс IEnumerable через свой метод GetEnumerator предоставляет перечислитель всем классам, реализующим ArrayListРеализует интерфейс IList с помощью массива с динамическим изменением размера по требованию. Варианты создания Часто используемые свойства Часто используемые методы ПримерArrayList array = new ArrayList();array.Add( ListПредставляет строго типизированный список объектов, доступных по индексу.Класс List является универсальным эквивалентом Что лучшеДелая выбор между классами List и ArrayList, предлагающими сходные функциональные возможности, Варианты создания Часто используемые свойства Часто используемые методы Пример ListList cars = new List();cars.Add( QueueПредставляет коллекцию объектов, основанную на принципе Варианты создания Часто используемые свойства Часто используемые методы Как она реализованаЭтот класс реализует универсального очередь в виде циклического массива. Объекты, ПримерQueue numbers = new Queue();numbers.Enqueue( StackПредставляет коллекцию переменного размера экземпляров одинакового заданного типа, обслуживаемую по принципу Варианты создания Часто используемые свойства Часто используемые методы ПримерStack numbs = new Stack();numbs.Push( Что-когда используется?Очереди и стеки полезны, когда требуется временное хранилище для данных; Очередь DictionaryАссоциативная коллекция. Представляет собой набор пар ключ-значение. Варианты создания (не все!) Часто используемые свойства Часто используемые методы СловарьDictionary Универсальный класс предоставляющий сопоставление из набора ключей для набора значений. Каждый ПримерDictionary dict = new Dictionary();dict.Add( foreachОператор foreach повторяет группу вложенных операторов для каждого элемента массива или коллекции foreachforeach( in )Нельзя использовать, если требуется изменять размер коллекции (добавлять или удалять из нее элементы)! Примерforeach (var kvp in dict){	Console.WriteLine( ИндексаторыИндексаторы позволяют индексировать экземпляры класса или структуры точно так же, как и ПримерСоздадим класс, в нем массив (нам же нужно будет откуда-то брать элементы) и индексатор Пример 2Индексатор может принимать более одного параметра Как сделать не получитсяНо реализовать индексатор типа «массив массивов» нельзя ПримерНе забудем про конструктор (к слову, зачем он нужен) Как использоватьПоработаем с одномерным индексатором Как использоватьИ двумерный
Слайды презентации

Слайд 2 Работа с наборами данных
Как хранить и обрабатывать наборы

Работа с наборами данныхКак хранить и обрабатывать наборы данных?МассивыКоллекции

данных?
Массивы
Коллекции


Слайд 3 Массивы
Ограничивается доступным размером памяти*
Размер массива должен быть указан

МассивыОграничивается доступным размером памяти*Размер массива должен быть указан при его создании.

при его создании.
Массивы могут хранить как ссылочные типы,

так и типы значений.

Слайд 4 Массивы
Массив является индексированной коллекцией объектов.

Одномерный массив объектов

МассивыМассив является индексированной коллекцией объектов. Одномерный массив объектов объявляется следующим образом.		type[] arrayName;

объявляется следующим образом.
type[] arrayName;


Слайд 5 Многомерный массив
Концептуально, многомерный массив с двумя измерениями напоминает

Многомерный массивКонцептуально, многомерный массив с двумя измерениями напоминает сетку (таблицу). Многомерный

сетку (таблицу).
Многомерный массив с тремя измерениями напоминает куб.

type[,]

arrayName;


Слайд 6 Массив массивов
Одним из вариантов многомерного массива является массив

Массив массивовОдним из вариантов многомерного массива является массив массивов. Массив массивов

массивов. Массив массивов представляет собой одномерный массив, в котором

каждый элемент является массивом. Элементы массива не обязаны иметь одинаковый размер.

type[][] arrayName;

Слайд 7 Массив массивов
Шаг 1: выделяем память под одномерный массив.
int[][]

Массив массивовШаг 1: выделяем память под одномерный массив.	int[][] jaggedArray = new

jaggedArray = new int[3][];
Шаг 2: Для каждого элемента одномерного

массива выделяем память под одномерный массив
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];


Слайд 8 Массив объектов
Создание массива объектов в отличие от создания

Массив объектовСоздание массива объектов в отличие от создания массива простых типов

массива простых типов данных происходит в два этапа.

Сначала

необходимо объявить массив.
А затем создать объекты для хранения в нем.

Слайд 9 Массив объектов
Создадим класс
class Class1 {int x;}

Теперь создадим массив

Массив объектовСоздадим классclass Class1 {int x;}Теперь создадим массив от этого классаClass1[]

от этого класса
Class1[] mas = new Class1[10];
for(int i =

0; i < 10; ++i)
{
mas[i] = new Class1();
}

Слайд 10 Другие коллекции
Рассмотрим другие коллекции, часто используемые в программировании:
ArrayList
List
Dictionary
Stack
Queue

Другие коллекцииРассмотрим другие коллекции, часто используемые в программировании:ArrayListListDictionaryStackQueue

Слайд 11 Библиотеки с коллекциями
Большая часть классов коллекций содержится в

Библиотеки с коллекциямиБольшая часть классов коллекций содержится в пространствах имен System.Collections,

пространствах имен System.Collections, System.Collections.Generic и System.Collections.Specialized.
Также для обеспечения

параллельного выполнения задач и многопоточного доступа применяются классы коллекций из пространства имен System.Collections.Concurrent

Слайд 12 Основа коллекций
Основой для создания всех коллекций является реализация

Основа коллекцийОсновой для создания всех коллекций является реализация интерфейсов IEnumerator и IEnumerable.

интерфейсов IEnumerator и IEnumerable.


Слайд 13 IEnumerator
Интерфейс IEnumerator представляет перечислитель, с помощью которого становится

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

возможен последовательный перебор коллекции, например, в цикле foreach.


Слайд 14 IEnumerable
Интерфейс IEnumerable через свой метод GetEnumerator предоставляет

IEnumerable Интерфейс IEnumerable через свой метод GetEnumerator предоставляет перечислитель всем классам,

перечислитель всем классам, реализующим данный интерфейс.
Поэтому интерфейс IEnumerable

(IEnumerable) является базовым для всех коллекций.


Слайд 15 ArrayList
Реализует интерфейс IList с помощью массива с динамическим

ArrayListРеализует интерфейс IList с помощью массива с динамическим изменением размера по требованию.

изменением размера по требованию.


Слайд 16 Варианты создания

Варианты создания

Слайд 17 Часто используемые свойства

Часто используемые свойства

Слайд 18 Часто используемые методы

Часто используемые методы

Слайд 19 Пример
ArrayList array = new ArrayList();
array.Add("Hello");
array.Add('I');
array.Add(1);

Console.WriteLine(" Count:

ПримерArrayList array = new ArrayList();array.Add(

{0}", array.Count);
Console.WriteLine(" Capacity: {0}", array.Capacity);
Console.Write(" Values:");
for(int i

= 0; i < array.Count; ++i)
{
Console.Write(" {0}", array[i]);
}

Слайд 20 List
Представляет строго типизированный список объектов, доступных по индексу.

Класс

ListПредставляет строго типизированный список объектов, доступных по индексу.Класс List является универсальным

List является универсальным эквивалентом класса ArrayList. Он реализует универсальный

интерфейс IList с помощью массива, размер которого динамически увеличивается по мере необходимости.

Слайд 21 Что лучше
Делая выбор между классами List и ArrayList,

Что лучшеДелая выбор между классами List и ArrayList, предлагающими сходные функциональные

предлагающими сходные функциональные возможности, следует помнить, что класс List

в большинстве случаев обрабатывается быстрее и является потокобезопасным. Если в качестве типа T класса List используется ссылочный тип, оба класса действуют идентичным образом.

Слайд 22 Варианты создания

Варианты создания

Слайд 23 Часто используемые свойства

Часто используемые свойства

Слайд 24 Часто используемые методы

Часто используемые методы

Слайд 25 Пример List
List cars = new List();
cars.Add("BMW");
cars.Add("Mersedes");
cars.Add("Ford Mustang");
cars.Add("Corvette");
cars.Add("Jaguar");

for (int

Пример ListList cars = new List();cars.Add(

i = 0; i < cars.Count; ++i)
{
Console.Write(" {0}",

cars[i]);
}
Console.ReadKey();

Слайд 26 Queue
Представляет коллекцию объектов, основанную на принципе "первым вошёл

QueueПредставляет коллекцию объектов, основанную на принципе

— первым вышел". (FIFO)

Добавление элементов происходит в конец списка.

Извлечение из начала списка.

Слайд 27 Варианты создания

Варианты создания

Слайд 28 Часто используемые свойства

Часто используемые свойства

Слайд 29 Часто используемые методы

Часто используемые методы

Слайд 30 Как она реализована
Этот класс реализует универсального очередь в

Как она реализованаЭтот класс реализует универсального очередь в виде циклического массива.

виде циклического массива. Объекты, хранящиеся в Queue вставляются с

одной стороны, и извлекаются с другой.

Слайд 31 Пример
Queue numbers = new Queue();
numbers.Enqueue("one");
numbers.Enqueue("two");
numbers.Enqueue("three");
numbers.Enqueue("four");
numbers.Enqueue("five");

Console.WriteLine(numbers.Peek());
Console.WriteLine(numbers.Dequeue());
Console.WriteLine(numbers.Dequeue());
Console.WriteLine(numbers.Peek());
Console.WriteLine(numbers.Peek());

ПримерQueue numbers = new Queue();numbers.Enqueue(

Слайд 32 Stack
Представляет коллекцию переменного размера экземпляров одинакового заданного типа,

StackПредставляет коллекцию переменного размера экземпляров одинакового заданного типа, обслуживаемую по принципу

обслуживаемую по принципу "последним пришел - первым вышел" (LIFO).

Это

означает, что новый элемент вставляется в начало и извлекается из начала.

Слайд 33 Варианты создания

Варианты создания

Слайд 34 Часто используемые свойства

Часто используемые свойства

Слайд 35 Часто используемые методы

Часто используемые методы

Слайд 36 Пример
Stack numbs = new Stack();
numbs.Push("one");
numbs.Push("two");
numbs.Push("three");
numbs.Push("four");
numbs.Push("five");

Console.WriteLine(numbs.Peek());
Console.WriteLine(numbs.Pop());
Console.WriteLine(numbs.Pop());
Console.WriteLine(numbs.Peek());
Console.WriteLine(numbs.Peek());

ПримерStack numbs = new Stack();numbs.Push(

Слайд 37 Что-когда используется?
Очереди и стеки полезны, когда требуется временное

Что-когда используется?Очереди и стеки полезны, когда требуется временное хранилище для данных;

хранилище для данных;
Очередь Queue используют, когда необходимо получить

доступ к данным в том же порядке, в котором их сохранят.
Стек Stack используют, когда требуется доступ к данным в обратном порядке.

Слайд 38 Dictionary
Ассоциативная коллекция. Представляет собой набор пар ключ-значение.

DictionaryАссоциативная коллекция. Представляет собой набор пар ключ-значение.

Слайд 39 Варианты создания (не все!)

Варианты создания (не все!)

Слайд 40 Часто используемые свойства

Часто используемые свойства

Слайд 41 Часто используемые методы

Часто используемые методы

Слайд 42 Словарь
Dictionary Универсальный класс предоставляющий сопоставление из набора ключей

СловарьDictionary Универсальный класс предоставляющий сопоставление из набора ключей для набора значений.

для набора значений.
Каждый ключ в Dictionary должно быть

уникальным

Слайд 43 Пример
Dictionary dict = new Dictionary();
dict.Add("txt", "notepad.exe");
dict.Add("bmp",

ПримерDictionary dict = new Dictionary();dict.Add(

"paint.exe");
dict.Add("dib", "paint.exe");
dict.Add("rtf", "wordpad.exe");

foreach (KeyValuePair kvp in dict)
{
Console.WriteLine("Key =

{0}, Value = {1}", kvp.Key, kvp.Value);
}

Слайд 44 foreach
Оператор foreach повторяет группу вложенных операторов для каждого

foreachОператор foreach повторяет группу вложенных операторов для каждого элемента массива или

элемента массива или коллекции объектов, реализующих интерфейс System.Collections.IEnumerable или

System.Collections.Generic.IEnumerable.

Слайд 45 foreach
foreach( in )

Нельзя использовать,

foreachforeach( in )Нельзя использовать, если требуется изменять размер коллекции (добавлять или удалять из нее элементы)!

если требуется изменять размер коллекции (добавлять или удалять из

нее элементы)!

Слайд 46 Пример
foreach (var kvp in dict)
{
Console.WriteLine("Key = {0}, Value

Примерforeach (var kvp in dict){	Console.WriteLine(

= {1}", kvp.Key, kvp.Value);
}

foreach(var car in cars)
{
Console.Write(" {0}",

car);
}

Слайд 47 Индексаторы
Индексаторы позволяют индексировать экземпляры класса или структуры точно

ИндексаторыИндексаторы позволяют индексировать экземпляры класса или структуры точно так же, как

так же, как и массивы.
Индексаторы напоминают свойства за

исключением того, что их методы доступа принимают параметры.

Слайд 48 Пример
Создадим класс, в нем массив (нам же нужно

ПримерСоздадим класс, в нем массив (нам же нужно будет откуда-то брать элементы) и индексатор

будет откуда-то брать элементы) и индексатор


Слайд 49 Пример 2
Индексатор может принимать более одного параметра

Пример 2Индексатор может принимать более одного параметра

Слайд 50 Как сделать не получится
Но реализовать индексатор типа «массив

Как сделать не получитсяНо реализовать индексатор типа «массив массивов» нельзя

массивов» нельзя


Слайд 51 Пример
Не забудем про конструктор (к слову, зачем он

ПримерНе забудем про конструктор (к слову, зачем он нужен)

нужен)


Слайд 52 Как использовать
Поработаем с одномерным индексатором

Как использоватьПоработаем с одномерным индексатором

  • Имя файла: rabota-s-naborami-dannyh-massivy-kollektsii-c-lektsiya-4.pptx
  • Количество просмотров: 139
  • Количество скачиваний: 1