Презентация на тему "Массивы и коллекции"

Презентация: Массивы и коллекции
1 из 30
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
4.0
1 оценка

Комментарии

Нет комментариев для данной презентации

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.


Добавить свой комментарий

Аннотация к презентации

Скачать презентацию (0.15 Мб). Тема: "Массивы и коллекции". Предмет: информатика. 30 слайдов. Для студентов. Добавлена в 2018 году. Средняя оценка: 4.0 балла из 5.

  • Формат
    pptx (powerpoint)
  • Количество слайдов
    30
  • Слова
    другое
  • Конспект
    Отсутствует

Содержание

  • Презентация: Массивы и коллекции
    Слайд 1

    Массивы и коллекции

    Arrays and collections 14.11.2008 1 Объектно-ориентированные технологии

  • Слайд 2

    Массивы и коллекции

    14.11.2008 Объектно-ориентированные технологии 2 Коллекция – это объект содержащий в себе набор значений одного или нескольких типов. Основная задача коллекции хранить значения объектов и обеспечивать доступ к ним. Коллекции позволяют экономить при разработке программ так как предоставляют готовые решения для построения структур данных. Пространство имён System.Collectionsсодержит классы и интерфейсы для коллекций. Массив - это коллекция переменных одного типа обращение к которым происходит с помощью одного имени и разных индексов. Хранение данных в массиве организуется таким образом чтобы к ним было легко обращаться. Массивы являются ссылочными типами и наследуют общий класс System.Array.Выход за границы массива не разрешается в случае такой попытки генерируется IndexOutOfRangeException.

  • Слайд 3

    Массивы

    14.11.2008 3 Объектно-ориентированные технологии

  • Слайд 4

    Класс Array

    14.11.2008 Объектно-ориентированные технологии 4 public abstract class Array : ICloneable, IList, ICollection, IEnumerable { public static void Clear(Array array, int index, int length ); public static void Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length ); public static int BinarySearch(Array array, Object value ); public static void Reverse(Array array, int index, int length ); public static void Sort(Array array, int index, int length ); public int Length { get; } public int Rank { get; } };

  • Слайд 5

    Методы и свойства класса Array

    14.11.2008 Объектно-ориентированные технологии 5 Статический методClearзадаёт диапазон элементов массива пустыми значениями. Статический метод Copy копирует диапазон элементов из одного массива в другой массив. Статический метод BinarySearchвыполняет поиск значения в отсортированном одномерном массиве используя алгоритм двоичного поиска. Статический метод Reverseизменяет порядок элементов на обратный. Статический метод Sortсортирует элементы в одномерном массиве. Свойство Lengthвозвращает число элементов в массиве. Свойство Rank возвращает размерность массива.

  • Слайд 6

    Одномерные массивы

    14.11.2008 Объектно-ориентированные технологии 6 Создание одномерного массива представляет из себя двухступенчатый процесс. Сначала объявляется ссылка на массив, после чего под массив выделяется область памяти и переменной присваивается ссылка на эту область памяти. При объявлении ссылки на массив в отличии от С++ квадратные скобки находтся за именем типа а не за именем переменной. Обращение к элементам одномерного массива производится с использованием одного целого индекса. Все данные в одномерном массиве должны быть одного типа.Тип данных в одномерном массиве определяются при объявлении массива.

  • Слайд 7

    Использование одномерного массива

    14.11.2008 Объектно-ориентированные технологии 7 class Program { static void Main() { int[] numbers = new int[10]; int average = 0; numbers[0]=71; numbers[1]=99; numbers[2]=42; numbers[3]=3; numbers[4]=18; numbers[5]=45; numbers[6]=33; numbers[7]=6; numbers[8]=15; numbers[9]=64; for(int i=0; i

  • Слайд 8

    Многомерные массивы

    14.11.2008 Объектно-ориентированные технологии 8 Многомерные массивы отличаются от одномерных тем что они характеризуются двумя или более измерениями. Поэтому обращение к элементам многомерного массива производится с использованием двух и более индексов. Все данные в многомерном массиве должны быть одного типа.Тип данных и количество измерений в многомерном массиве определяются при объявлении массива.

  • Слайд 9

    Использование многомерного массива

    14.11.2008 Объектно-ориентированные технологии 9 class Program { static void Main() { int[,] numbers = new int[3,3]; int average = 0; numbers[0,0]=27; numbers[0,1]=88; numbers[0,2]=59; numbers[1,0]=64; numbers[1,1]=17; numbers[1,2]=11; numbers[2,0]=12; numbers[2,1]=93; numbers[2,2]=8; for(int i=0; i

  • Слайд 10

    Рваные массивы

    14.11.2008 Объектно-ориентированные технологии 10 Рваные массивы похожи на многомерные массивы в том что они тоже многомерные. Основное отличие заключается в том что рваные массивы это фактически массивы массивов. Отсюда следуют два важных факта. Диапазон допустимых индексов будет зависеть от значений предыдущих индексов. Данные в рваном массиве не обязаны быть одного типа они могут быть разными в зависимости от значений последовательности индексов за исключением последнего. Как и для одномерных или многомерных массивах выход за границу допустимых значений для рваного массива не допускается разрешается в случае такой попытки генерируется IndexOutOfRangeException.

  • Слайд 11

    Использование рваного массива

    14.11.2008 Объектно-ориентированные технологии 11 class Program { static void Main() { int[][] numbers = new int[3][]; int average = 0; numbers[0] = new int[3]; numbers[1] = new int[1]; numbers[2] = new int[2]; numbers[0][0]=91; numbers[0][1]=25; numbers[0][2]=15; numbers[1][0]=36; numbers[2][0]=17; numbers[2][1]=11; for(int i=0; i

  • Слайд 12

    Коллекции

    14.11.2008 12 Объектно-ориентированные технологии

  • Слайд 13

    Интерфейсы коллекций

    14.11.2008 Объектно-ориентированные технологии 13 Коллекции в FCL основанны на интерфейсах. Пространство имён System.Collectionsсодержит несколько таких интерфейсов включая IEnumerable, IEnumerator, ICollection, IList, IDictionary. Интерфейс ICollectionявляется самым примитивным интерфейсом. Он определяет поведение которое должны поддерживать все коллекции. Например все коллекции должны поддерживать свойство возвращающее количество элементов в коллекции. ИнтерфейсIListопределяет поведение которое должны поддерживать списки то есть коллекции доступ к элементам которой возможен с помощью индекса. ИнтерфейсIDictionary определяет поведение коллекций хранящих пары ключ-значение. Интерфейсы IEnumerable иIEnumerator определяет поведение необходимое для поэлементного доступа к содержимому коллекции с помощью цикла foreach.

  • Слайд 14

    Интерфейсы IEnumerable и IEnumerator

    14.11.2008 Объектно-ориентированные технологии 14 public interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { bool MoveNext(); // сдвинуть курсор object Current {get;} // достать текущий элемент void Reset(); // установить курсор перед первым элементом }

  • Слайд 15

    Интерфейс ICollection

    14.11.2008 Объектно-ориентированные технологии 15 public interface ICollection : IEnumerable { int Count {get;} bool IsSynchronized(); object SybcRoot {get;} void CopyTo(Array array, int index); }

  • Слайд 16

    Интерфейс IList

    14.11.2008 Объектно-ориентированные технологии 16 public interface IList : ICollection, IEnumerable { Object this [int index] {get; set;} int Add(Object value); void Clear(); bool Contains(Object value); int IndexOf(Object value); void Insert(int index, Object value); void Remove(Object value); void RemoveAt(int index); bool IsFixedSize {get;} bool IsReadOnly {get;} }

  • Слайд 17

    Интерфейс IDictionary

    14.11.2008 Объектно-ориентированные технологии 17 public interface IDictionary : ICollection, IEnumerable { object this [Object key] {get; set;} ICollection Keys {get;} ICollection Values {get;} void Add(Object key, Object value); void Clear(); bool Contains(Object key); IDictionaryEnumerator GetEnumerator(); void Remove(Object key); bool IsFixedSize {get;} bool IsReadOnly {get;} } public interface IDictionaryEnumerator : IEnumerator { DictionaryEntry Entry {get;} object Key {get;} object Value {get;} }

  • Слайд 18

    Коллекции

    14.11.2008 Объектно-ориентированные технологии 18 Пространство имён System.Collectionsсодержит несколько конкретных классов коллекций таких как Queue, Stack, ArrayList, SortedListи HashTable реализующих несколько из интерфейсов IEnumerable, ICollection, IList, IDictionary. Реализация интерфейсов в конкретных классах очень сильно отличается. Несмотря на это наборы действий которые можно выполнять над этими коллекциями во многом совпадают. Все они поддерживают набор элементов которые можно перечислять и все они поддерживают добавление и удаление элементов.

  • Слайд 19

    Класс Queue

    14.11.2008 Объектно-ориентированные технологии 19 public class Queue : ICollection, Ienumerable, ICloneable { Object Dequeue(); void Enqueue(Object); Object Peek(); }

  • Слайд 20

    Методы класса Queue

    14.11.2008 Объектно-ориентированные технологии 20 МетодDeque возвращает и удаляет элемент из начала очереди. Метод Enqueueдобавляет элемент в конец очереди. Метод Peek возвращает элемент из начала очереди не удаляя его.

  • Слайд 21

    Использование очереди

    14.11.2008 Объектно-ориентированные технологии 21 static void Main() { Queue someQ = new Queue(); someQ.Enqueue("Первыйдобавленный"); someQ.Enqueue("Второй добавленный "); someQ.Enqueue("Третий добавленный "); Console.WriteLine("Первый элемент: {0}", someQ.Peek()); Console.WriteLine("Первый элемент: {0}", someQ.Dequeue()); Console.WriteLine("Второй элемент: {0}", someQ.Dequeue()); Console.WriteLine("Третий элемент: {0}", someQ.Dequeue()); try { Console.WriteLine("Четвёртый элемент: {0}", someQ.Dequeue()); } catch(InvalidOperationException) { Console.WriteLine("А четвёртого элемента в очереди нет!"); } }

  • Слайд 22

    Класс Stack

    14.11.2008 Объектно-ориентированные технологии 22 public class Stack : ICollection, IEnumerable, ICloneable { Object Peek(); Object Pop(); void Push(Object); }

  • Слайд 23

    Методы класса Stack

    14.11.2008 Объектно-ориентированные технологии 23 Метод Peek возвращает верхний элемент из стека не удаляя его. МетодPop возвращает и удаляет верхний элемент стека. Метод Pushдобавляет верхний элемент в стек.

  • Слайд 24

    Использование стека

    14.11.2008 Объектно-ориентированные технологии 24 static void Main() { Stack someS = new Stack(); someS.Push("Первыйдобавленный"); someS.Push("Второй добавленный"); someS.Push("Третий добавленный"); Console.WriteLine("Первый элемент: {0}", someS.Peek()); Console.WriteLine("Первый элемент: {0}", someS.Pop()); Console.WriteLine("Второй элемент: {0}", someS.Pop()); Console.WriteLine("Третий элемент: {0}", someS.Pop()); try { Console.WriteLine("Четвёртый элемент: {0}", someS.Pop()); } catch(InvalidOperationException) { Console.WriteLine("А четвёртого элемента в стеке нет!"); } }

  • Слайд 25

    Класс ArrayList

    14.11.2008 Объектно-ориентированные технологии 25 public class ArrayList : IList, ICollection, IEnumerable, ICloneable { public virtual int Add(Object value); public virtual bool Contains(Object item); public virtual int IndexOf(Object value); public virtual void Insert(int index, Object value); public virtual void Remove(Object obj); public virtual void RemoveAt(int index); public virtual int Capacity { get; set; } public virtual int Count { get; } public virtual Object Item[ int index ] { get; set; } }

  • Слайд 26

    Методы и свойства класса ArrayList

    14.11.2008 Объектно-ориентированные технологии 26 МетодAdd добавляет элемент в конец динамического массива. Метод Containsопределяет содержит ли динамический массив указанное значение. Метод IndexOfвозвращает индекс первого вхождения значения. Метод Insertвставляет элемент в динамический массив по указанному индексу. Метод Removeудаляет первое вхождение указанного значения из динамического массива. Метод RemoveAtудаляет элемент с указанным индексом из динамического массива. Свойство Capacityпозволяет получать и задавать ёмкость динамического массива. Свойство Count возвращает количество элементов в динамическом массиве. Индексатор позволяет по индексу получать и изменять значение.

  • Слайд 27

    Использование динамического массива

    14.11.2008 Объектно-ориентированные технологии 27 static void Main() { ArrayList someAL = new ArrayList(); Console.WriteLine("Количество элементов после создания: {0}", someAL.Count); Console.WriteLine("Вместимость после создания: {0}", someAL.Capacity); someAL.Add("Первыйдобавленный"); someAL.Add("Второй добавленный "); someAL.Add("Третий добавленный "); Console.WriteLine("Количество элементов после добавления: {0}", someAL.Count); Console.WriteLine("Вместимость после добавления: {0}", someAL.Capacity); for(int i=0; i

  • Слайд 28

    Класс Hashtable

    14.11.2008 Объектно-ориентированные технологии 28 public class Hashtable : IDictionary, ICollection, IEnumerable, ICloneable { public virtual void Add(Object key, Object value); public virtual void Clear(); public virtual bool ContainsKey(Object key); public virtual bool ContainsValue(Object value); public virtual void Remove(Object key); public virtual Object Item[Object key] { get; set; } public virtual ICollection Keys { get; } public virtual ICollection Values { get; } }

  • Слайд 29

    Методы и свойства класса HashTable

    14.11.2008 Объектно-ориентированные технологии 29 МетодAdd добавляет пару ключ-значение в хэш таблицу. Метод Clearудаляет все элементы из хэш таблицы. Метод ContainsKeyопределяет содержит ли хэш таблица указанный ключ. Метод ContainsValueопределяет содержит ли хэш таблица указанное значение. Метод Removeудаляет пару ключ-значение с указанным ключом из хэш таблицы. Свойства Keysи Valuesвозвращают коллекции ключей и значений для всех пар содержащихся в хэш таблице. Индексатор позволяет по ключу получать и изменять значение.

  • Слайд 30

    Использование хэш таблицы

    14.11.2008 Объектно-ориентированные технологии 30 static void Main() { Hashtable someHT = new Hashtable(); someHT.Add("Имя", "Иван"); someHT.Add("Фамилия", "Петров"); someHT["Должность"]="Разработчик .NET"; ICollection keysC = someHT.Keys; foreach( string str in keysC) { Console.WriteLine(str + " : " + someHT[str]); } Console.WriteLine("Отчество: {0}", someHT.["Отчество"]); }

Посмотреть все слайды

Сообщить об ошибке