Класс Queue реализует интерфейсы:
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

• ICollection (здесь определено свойство int Count {get;} ),

• lEnumerable,

• ICloneable.

Методы, определенные в классе Queue

Метод Описание
public virtual   bool Contains(object v) Возвращает значение true, если объект v содержится в вызывающей очереди. В противном случае возвращает значение false
Public virtual void Clear() Устанавливает свойство Count равным нулю, тем самым эффективно очищая очередь
public virtual         object Dequeue() Возвращает объект из начала вызывающей очереди, Возвращаемый объект из очереди удаляется
public virtual void Enqueue(object v) Добавляет объект v в конец очереди
public virtual               object Peek ( ) Возвращает объект из начала вызывающей очереди, но не удаляет его
public static Queue Synchronized(Queue q) Возвращает синхронизи­рован­ную версию очереди, заданной параметром q
public virtual      object[ ] ToArray ( ) Возвращает массив, который содержит копии элементов из вызываю­щей очереди
public virtual        void TrimToSlze( ) Устанавливает свойство capacity равным значению свойства Count

// Демонстрация класса Queue.

using System;

using System.Collections;

Class QueueDemo

{

public static void Main()

{

   int a;

   Queue q = new Queue();

   q.Enqueue(22);

   q.Enqueue(65);

   q.Enqueue(91);

   foreach (int i in q)

       Console.Write(i + " ");

   Console.WriteLine();

   try

   {

       a = (int)q.Dequeue(); Console.WriteLine(a);

       a = (int)q.Dequeue(); Console.WriteLine(a);

       a = (int)q.Dequeue(); Console.WriteLine(a);

       a = (int)q.Dequeue(); Console.WriteLine(a);

    }

   catch (InvalidOperationException)

   {

       Console.WriteLine("Очередь пуста.");

   }

}

}

Класс Hashtable

Класс Hashtable предназначен для создания коллекции, в которой для хранения объектов используется хеш-таблица. В хеш-таблице для хранения информации используется механизм, именуемый хешированием (hashing), Суть хеширования состоит в том, что для определения уникального значения, которое, называется хеш-кодом, используется информа­ционное содержимое соответствующего ему ключа. Хеш-код затем используется в качестве индекса, по которому в таблице отыски­ваются данные, соответствующие этому ключу.

Преимущество хеширования — в том, что оно позволяет сохранять постоянным время выполнения таких операций, как поиск, считывание и запись данных, даже для больших объемов информации.

Hashtable-коллекция не гарантирует сохранения порядка элементов.

Класс Hashtable реализует интерфейсы:

• IDictionary,

• ICollection,

• lEnumerable,

• ISerializable,

• IDeserializationCallback,

• ICloneable.

В классе Hashtable определено множество конструкторов, но чаще всего используется следующий:

                      public Hashtable();

Наиболее употребимые методы класса Hashtable

Метод Описание
public virtual bool  ContainsKey(object k) Возвращает значение true, если в вызывающей Hashtable-коллекции содержится ключ, заданный параметром k. В противном случае возвращает значение false.
public virtual bool ContainsValue(object v) Возвращает значение true, если в вызывающей Hashtable-коллек­ции содержится значение, заданное параметром v. В противном случае возвращает значение false
public virtual IDictionaryEnumerator            GetEnumerator() Возвращает для вызывающей Hashtable-коллекции нумератор типа IDictionaryEnumerator
public static Hashtable Synchronized(                 Hashtable ht) Возвращает синхронизированную версию вызывающей Hashtabie-коллекции, переданной в параметре ht.

В классе Hashtable, помимо свойств, определенных в реализованных им интерфейсах, также определены два собственных public-свойства. Используя следующие свойства, можно из Hashtable-коллекции получить коллекцию ключей или значений:

public virtual ICollection Keys { get ; }

public virtual ICollection Values { get ; }

В классе определен так же и индексатор

this[ключ] {get; set;}

В классе Hashtable пары ключ/значение хранятся в форме структуры типа DictionaryEntry, но по большей части вас это не будет касаться, поскольку свойства и методы обрабатывают ключи и значения отдельно.

// Демонстрация использования Hashtable-коллекции.

using System;

using System.Collections;

Class HashtableDemo

{

public static void Main()

{

   Hashtable ht = new Hashtable(); // Создаем хеш-таблицу.

   // Добавляем элементы в хеш-таблицу.

   ht.Add("здание",            "жилое помещение");

   ht.Add("книга",             "набор печатных слов");

   ht.Add("яблоко",           "съедобный фрукт");

   ht.Add("автомобиль",   "транспортное средство");

   //Добавляем элементы с помощью индексатора.

   ht ["трактор"] = "сельскохозяйственная машина";

   // Извлекаем элемент по ключу.

   string value = (string)ht ["автомобиль"];

   Console.WriteLine ("---автомобиль: " + value);

   // Получаем коллекцию ключей.

   // Используем ключи для получения значений.

   Console.WriteLine("\n---Первый способ---");

   ICollection с = ht.Keys;

   foreach(string str in с)

       Console.WriteLine(str + ": " + ht[str]);

   ht.Remove("трактор");               // Удалить элемент

   Console.WriteLine("\n---Второй способ---");

   // Используем структуру DictionaryEntry для получения ключей и значений.

   foreach (DictionaryEntry de in ht)

   {

       Console.WriteLine(de.Key + ": " + de.Value);

   }

}

}

Дата: 2019-02-02, просмотров: 249.