Разделы презентаций


Коллекции

Содержание

Введение в коллекцииКозьминых Н.М.Коллекция в C# представляет собой совокупность объектовКоллекции упрощают решение многих задач программирования на основе структур данныхКоллекции предназначены для поддержки динамических массивов, связных списков, стеков, очередей и хеш-таблиц

Слайды и текст этой презентации

Слайд 1Лекция 17. Коллекции
дисциплина «Программирование»
Козьминых Н.М.

Лекция 17. Коллекциидисциплина «Программирование»Козьминых Н.М.

Слайд 2Введение в коллекции
Козьминых Н.М.
Коллекция в C# представляет собой совокупность объектов
Коллекции

упрощают решение многих задач программирования на основе структур данных
Коллекции предназначены

для поддержки динамических массивов, связных списков, стеков, очередей и хеш-таблиц

Введение в коллекцииКозьминых Н.М.Коллекция в C# представляет собой совокупность объектовКоллекции упрощают решение многих задач программирования на основе

Слайд 3Обзор коллекций
Козьминых Н.М.
Необобщенные коллекции (System.Collections): динамический массив, стек, очередь, словари.

Коллекции не типизированы, поскольку в них хранятся ссылки на данные

типа object.
Специальные коллекции (System.Collections.Specialized): коллекции для символьных строк, специальные коллекции, в которых используется однонаправленный список.
Поразрядная коллекция (System.Collections) – BitArray, поддерживающая поразрядные операции.
Обобщенные коллекции (System.Collections.Generic): связные списки, стеки, очереди и словари. Коллекции являются типизированными в силу их обобщенного характера.
Параллельные коллекции (System.Collections.Concurrent)- поддерживают многопоточный доступ к коллекции.
Обзор коллекцийКозьминых Н.М.Необобщенные коллекции (System.Collections): динамический массив, стек, очередь, словари. Коллекции не типизированы, поскольку в них хранятся

Слайд 4Необобщенные коллекции
Козьминых Н.М.
пространство имен System.Collections;
структуры данных общего назначения, оперирующие ссылками

на объекты;
можно хранить разнотипные данные:
«+» позволяют манипулировать объектом любого типа,

хотя и не типизированным способом;
«-» не обеспечивают типовую безопасность.

Необобщенные коллекцииКозьминых Н.М.пространство имен System.Collections;структуры данных общего назначения, оперирующие ссылками на объекты;можно хранить разнотипные данные:«+» позволяют манипулировать

Слайд 5Классы необобщенных коллекций
Козьминых Н.М.

Классы необобщенных коллекцийКозьминых Н.М.

Слайд 6Обобщенные коллекции
Козьминых Н.М.
пространство имен System.Collections.Generic;
обобщенные коллекции типизированы;
как правило, классы обобщенных

коллекций являются не более чем обобщенными эквивалентами классов необобщенных коллекций,

например, ArrayList → List, HashTable → Dictionary;

Обобщенные коллекцииКозьминых Н.М.пространство имен System.Collections.Generic;обобщенные коллекции типизированы;как правило, классы обобщенных коллекций являются не более чем обобщенными эквивалентами

Слайд 7Классы обобщенных коллекций
Козьминых Н.М.

Классы обобщенных коллекцийКозьминых Н.М.

Слайд 8Класс ArrayList
Козьминых Н.М.
поддерживаются динамические массивы, расширяющиеся и сокращающиеся по мере

необходимости.
свойство Count - количество объектов, хранящихся в коллекции на данный

момент
некоторые часто используемые методы:

Класс ArrayListКозьминых Н.М.поддерживаются динамические массивы, расширяющиеся и сокращающиеся по мере необходимости.свойство Count - количество объектов, хранящихся в

Слайд 9Класс ArrayList - пример
Козьминых Н.М.
ArrayList arrLst = new ArrayList();
arrLst.Add("11"); outputArrayList(arrLst);
arrLst.Add("44");

outputArrayList(arrLst);
arrLst.Add("33"); outputArrayList(arrLst);
arrLst.Insert(2, "55"); outputArrayList(arrLst);
arrLst.Add("44"); outputArrayList(arrLst);
arrLst.Remove("44"); outputArrayList(arrLst);
listBox3.Items.Add("find: " + arrLst.IndexOf("55"));
arrLst.Reverse(); outputArrayList(arrLst);
...
private

void outputArrayList(ArrayList arrLst){
String ss = "";
foreach (String item in arrLst){
ss = ss + item + " , ";
}
listBox3.Items.Add(ss);
}

Класс ArrayList - примерКозьминых Н.М.ArrayList arrLst = new ArrayList();arrLst.Add(

Слайд 10Класс Hashtable
Козьминых Н.М.
информация сохраняется в хеш-таблице с помощью механизма хеширования;
хеш-код

служит в качестве индекса, по которому в таблице хранятся искомые

данные, соответствующие заданному ключу

Класс HashtableКозьминых Н.М.информация сохраняется в хеш-таблице с помощью механизма хеширования;хеш-код служит в качестве индекса, по которому в

Слайд 11Класс Hashtable - пример
Козьминых Н.М.
Hashtable hashtable = new Hashtable();
hashtable.Add("qwe", "111");

outputHashtable(hashtable);
hashtable.Add("zxc", "222"); outputHashtable(hashtable);
hashtable.Add("asd", "666"); outputHashtable(hashtable);
...
private void outputHashtable(Hashtable arrLst){
String ss

= "";
foreach (String item in arrLst.Keys){
ss = ss + item + " : " + arrLst[item] + " , ";
}
listBox6.Items.Add(ss);

ss = "";
foreach (String item in arrLst.Values){
ss = ss + item + " , ";
}
listBox6.Items.Add(ss);
}
Класс Hashtable - примерКозьминых Н.М.Hashtable hashtable = new Hashtable();hashtable.Add(

Слайд 12Стек: классы Stack и Stack
Козьминых Н.М.
контейнер, работающий по принципу "последний

вошел, первый вышел" (last in, first out — LIFO)

Стек: классы Stack и StackКозьминых Н.М.контейнер, работающий по принципу

Слайд 13Стек: классы Stack и Stack - пример
Козьминых Н.М.
Stack stack =

new Stack();
stack.Push("111"); outputStack(stack);
stack.Push("222"); outputStack(stack);
stack.Push("333"); outputStack(stack);
listBox5.Items.Add("Peek: " + stack.Peek());
outputStack(stack);
listBox5.Items.Add("Pop: " +

stack.Pop());
outputStack(stack);

private void outputStack(Stack arrLst){
String ss = "";
foreach (String item in arrLst){
ss = ss + item + " , ";
}
listBox5.Items.Add(ss);
}

Стек: классы Stack и Stack - примерКозьминых Н.М.Stack stack = new Stack();stack.Push(

Слайд 14Очередь: классы Queue и Queue
Козьминых Н.М.
коллекция, в которой элементы обрабатываются

по схеме "первый вошел, первый вышел" (first in, first out

— FIFO)

Очередь: классы Queue и QueueКозьминых Н.М.коллекция, в которой элементы обрабатываются по схеме

Слайд 15Связный список: класс LinkedList
Козьминых Н.М.
двухсвязный список, в котором каждый элемент

ссылается на следующий и предыдущий

Связный список: класс LinkedListКозьминых Н.М.двухсвязный список, в котором каждый элемент ссылается на следующий и предыдущий

Слайд 16Связный список: класс LinkedList - пример
Козьминых Н.М.
LinkedList lst = new

LinkedList();
lst.AddFirst("111"); outputLinkedList(lst);
lst.AddLast("222"); outputLinkedList(lst);
lst.AddBefore(lst.Find("111"), "DDD");
outputLinkedList(lst);
lst.AddBefore(lst.Find("111"), "zzz");
outputLinkedList(lst);
listBox1.Items.Add("1: " + lst.ElementAt(1));
lst.Remove("DDD"); outputLinkedList(lst);

private void

outputLinkedList(LinkedList lst){
String ss = "";
foreach (String item in lst){
ss = ss + item + " , ";
}
listBox1.Items.Add(ss);
}

Связный список: класс LinkedList - примерКозьминых Н.М.LinkedList lst = new LinkedList();lst.AddFirst(

Слайд 17Сортированный список: класс SortedList
Козьминых Н.М.
коллекция, отсортированная по ключу

Сортированный список: класс SortedListКозьминых Н.М.коллекция, отсортированная по ключу

Слайд 18Сортированный список: класс SortedList - пример
Козьминых Н.М.
SortedList sortedList =

new SortedList();
sortedList.Add("qwe", "111"); outputSortedList(sortedList);
sortedList.Add("asd", "333"); outputSortedList(sortedList);
sortedList.Add("zxc", "222"); outputSortedList(sortedList);

private void outputSortedList(SortedList

arrLst){
String ss = "";
foreach (String item in arrLst.Keys){
ss = ss + item + " : " + arrLst[item] + " , ";
}
listBox4.Items.Add(ss);

ss = "";
foreach (String item in arrLst.Values){
ss = ss + item + " , ";
}
listBox4.Items.Add(ss);
}

Сортированный список: класс SortedList - примерКозьминых Н.М.SortedList sortedList = new SortedList();sortedList.Add(

Слайд 19Пример
Козьминых Н.М.
SortedList list = new SortedList();

private void

output()
{

StringBuilder result = new StringBuilder();
foreach (string key in list.Keys)
result.Append(key + ": " + list[key] + ", ");
listBox.Items.Add(result.ToString());
}

ПримерКозьминых Н.М.SortedList list = new SortedList(); private void output()    {

Слайд 20Пример (продолжение)
Козьминых Н.М.
private void btnAdd_Click(object sender,

EventArgs e) {

if (txtKey.Text == "") {
MessageBox.Show("Укажите ключ"); return;
}
if (txtValue.Text == "") {
MessageBox.Show("Укажите значение"); return;
}
if (list.ContainsKey(txtKey.Text)) {
MessageBox.Show("Указанный ключ уже существует"); return;
}
list.Add(txtKey.Text, txtValue.Text);
output();
}

private void btnDelete_Click(object sender, EventArgs e) {
if (!list.ContainsKey(txtKey.Text)) {
MessageBox.Show("Указанного ключа уже существует"); return;
}
list.Remove(txtKey.Text);
output();
}
Пример (продолжение)Козьминых Н.М.    private void btnAdd_Click(object sender, EventArgs e)   {

Слайд 21Словарь: класс Dictionary
Козьминых Н.М.
сложная структура данных, позволяющая обеспечить доступ

к элементам по ключу;
главное свойство словарей — быстрый поиск на

основе ключей.

Словарь: класс DictionaryКозьминых Н.М.сложная структура данных, позволяющая обеспечить доступ к элементам по ключу;главное свойство словарей — быстрый

Слайд 22Словарь: класс Dictionary - пример
Козьминых Н.М.
Dictionary dict =

new Dictionary();
dict.Add("qwe", "111"); outputDictionary(dict);
dict.Add("asd", "666"); outputDictionary(dict);
dict.Add("zxc", "444"); outputDictionary(dict);

private void

outputDictionary(Dictionary arrLst){
String ss = "";
foreach (String item in arrLst.Keys){
ss = ss + item + " : " + arrLst[item] + " , ";
}
listBox7.Items.Add(ss);

ss = "";
foreach (String item in arrLst.Values){
ss = ss + item + " , ";
}
listBox7.Items.Add(ss);
}

Словарь: класс Dictionary - примерКозьминых Н.М.Dictionary dict = new Dictionary();dict.Add(

Слайд 23Множества: классы HashSet и SortedSet
Козьминых Н.М.
коллекция, содержащаяся только отличающиеся элементы

Множества: классы HashSet и SortedSetКозьминых Н.М.коллекция, содержащаяся только отличающиеся элементы

Слайд 24Множества: классы HashSet и SortedSet - пример
Козьминых Н.М.
SortedSet sSortSet =

new SortedSet();
sSortSet.Add("111"); outputSortedSet(sSortSet);
sSortSet.Add("555"); outputSortedSet(sSortSet);
sSortSet.Add("222"); outputSortedSet(sSortSet);

SortedSet sSortSet2 = new SortedSet();
sSortSet2.Add("111");

listBox2.Items.Add( sSortSet2.IsSubsetOf(sSortSet));
outputSortedSet(sSortSet);

private

void outputSortedSet(SortedSet sSortSet){
String ss = "";
foreach (String item in sSortSet){
ss = ss + item + " , ";
}
listBox2.Items.Add(ss);
}

Множества: классы HashSet и SortedSet - примерКозьминых Н.М.SortedSet sSortSet = new SortedSet();sSortSet.Add(

Слайд 25Вопросы…

Спасибо за внимание
Козьминых Н.М.

Вопросы…Спасибо за вниманиеКозьминых Н.М.

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

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


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

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