Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Вопрос№37. Использование динамического массива.Содержание книги
Поиск на нашем сайте using System; using System.Collections;
namespace MyProgram { class Program { static void ArrayPrint(string s, ArrayList a) { Console.WriteLine(s); foreach (int i in a) Console.Write(i + " "); Console.WriteLine(); }
static void Main(string[] args) { ArrayList myArray = new ArrayList(); Console.WriteLine("Начальная емкость массива: " + myArray.Capacity); Console.WriteLine("Начальное количество элементов: " + myArray.Count);
Console.WriteLine("\nДобавили 5 цифр"); for (int i = 0; i < 5; i++) myArray.Add(i); Console.WriteLine("Текущая емкость массива: " + myArray.Capacity); Console.WriteLine("Текущее количество элементов: " + myArray.Count); ArrayPrint("Содержимое массива", myArray);
Console.WriteLine("\nОптимизируем емкость массива"); myArray.Capacity=myArray.Count; Console.WriteLine("Текущая емкость массива: " + myArray.Capacity); Console.WriteLine("Текущее количество элементов: " + myArray.Count); ArrayPrint("Содержимое массива", myArray);
Console.WriteLine("\nДобавляем элементы в массив"); myArray.Add(10); myArray.Insert(1, 0); myArray.AddRange(myArray); Console.WriteLine("Текущая емкость массива: " + myArray.Capacity); Console.WriteLine("Текущее количество элементов: " + myArray.Count); ArrayPrint("Содержимое массива", myArray);
Console.WriteLine("\nУдаляем элементы из массива"); myArray.Remove(0); myArray.RemoveAt(10); Console.WriteLine("Текущая емкость массива: " + myArray.Capacity); Console.WriteLine("Текущее количество элементов: " + myArray.Count); ArrayPrint("Содержимое массива", myArray);
Console.WriteLine("\nУдаляем весь массив"); myArray.Clear(); Console.WriteLine("Текущая емкость массива: " + myArray.Capacity); Console.WriteLine("Текущее количество элементов: " + myArray.Count); ArrayPrint("Содержимое массива", myArray); } } } Вопрос№38.Хэш таблица. Класс Hashtable предназначен для создания коллекции, в которой для хранения объектов используется хеш-таблица. В хеш-таблице для хранения информации используется механизм, именуемый хешированием (hashing). Суть хеширования состоит в том, что для определения уникального значения, которое называется хеш-кодом, используется информационное содержимое соответствующего ему ключа. Хеш-код затем используется в качестве индекса, по которому в таблице отыскиваются данные, соответствующие этому ключу. Преобразование ключа в хеш-код выполняется автоматически, т.е. сам хеш-код вы даже не увидите. Но преимущество хеширования - в том, что оно позволяет сокращать время выполнения таких операций, как поиск, считывание и запись данных, даже для больших объемов информации. Класс Hashtable реализует стандартные интерфейсы IDictionary, ICollection, IEnumerable, ISerializable, IDeserializationCallback и ICloneable. Размер хеш-таблицы может динамически изменяться. Размер таблицы увеличивается тогда, когда количество элементов превышает значение, равное произведению вместимости таблицы и ее коэффициента заполнения, который может принимать значение на интервале от 0,1 до 1,0. По умолчанию установлен коэффициент равный 1,0. Разработаем простейшую записную книжку, в которую можно добавлять и удалять телефоны, а также осуществлять поиск номера телефона по фамилии и фамилии по номеру телефона. using System;using System.Collections;using System.IO;using System.Text; namespace MyProgram{class Program{static void printTab(string s, Hashtable a){Console.WriteLine(s);ICollection key = a.Keys; //Прочитали все ключиforeach (string i in key)//использование ключа для получения значения{Console.WriteLine(i + "\t" + a[i]);}} static void Main(string[] args){StreamReader fileIn = new StreamReader("t.txt",Encoding.GetEncoding(1251));string line;Hashtable people = new Hashtable();while ((line = fileIn.ReadLine())!= null) //цикл для организации обработки файла{string [] temp = line.Split(' ');people.Add(temp[0],temp[1]);}fileIn.Close();printTab("Исходные данные: ", people); Console.WriteLine("Введите номер телефона");line = Console.ReadLine();if (people.ContainsKey(line)) Console.WriteLine(line + "\t" + people[line]);else{Console.WriteLine("Такого номера нет в записной книжке.\nВведите фамилию: ");string line2=Console.ReadLine();people.Add(line,line2);}printTab("Исходные данные: ", people); Console.WriteLine("Введите фамилию для удаления");line = Console.ReadLine();if (people.ContainsValue(line)){ICollection key =people.Keys; //Прочитали все ключиConsole.WriteLine(line);string del="";foreach (string i in key)//использование ключа для получения значенияif (string.Compare((string)people[i], line) == 0){del = i;break;} Console.WriteLine(del + "\t" + people[del] + "- данные удалены!!!");people.Remove(del);printTab("Измененные данные: ", people);}else Console.WriteLine("Такого абонента в записной книжке нет ");}}}_________t.txt____________12-34-56 Иванов78-90-12 Петров34-56-78 Семёнов90-11-12 Пиманов
|
||
|
Последнее изменение этой страницы: 2017-02-07; просмотров: 268; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.146 (0.006 с.) |