В первой форме конструктора создается пустая очередь с выбираемой по умолчанию первоначальной емкостью, а во второй форме — пустая очередь, первоначальный размер которой определяет параметрcapaci ty.И в третьей форме создается очередь, содержащая элементы коллекции, определяемой параметромcollection.Ее первоначальная емкость равна количеству указанных элементов.

В классеQueueопределяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются, а также в интерфейсеICollection.Некоторые из наиболее часто используемых методов этого класса перечислены в табл. 25.21. Как и в классеQueue,эти методы обычно применяются следующим образом. Для того чтобы поместить объект в очередь, вызывается методEnqueue (). Если требуется извлечь и удалить первый объект из начала очереди, то вызывается методDequeue (). Если же требуется извлечь, но йе удалять следующий объект из очереди, то вызывается методРеек(). А если методыDequeue() иРеек() вызываются, когда очередь пуста, то генерируется исключениеInvalidOperationException.

Таблица 25.21. Методы, определенные в классе Queue

Метод    Описание

public    т Dequeue ()    Возвращает объект из начала вызывающей    очереди.

Возвращаемый объект удаляется из очереди public    void Enqueue (Т item) Добавляет элемент i tern в конец очереди

public    т Реек ()    Возвращает элемент из начала вызывающей очере-

_ди, но не удаляет его_

Метод

Описание

public virtual Т[] ToArray()

public void TrimExcess()

Возвращает массив, который содержит копии элементов из вызывающей очереди Сокращает избыточную емкость вызывающей коллекции в виде очереди

В приведенном ниже примере демонстрируется применение классаQueue.

// Продемонстрировать применение класса Queue. using System;

using System.Collections.Generic;

class GenQueueDemo { static void Main() {

Queue q = new Queue();

q.Enqueue(98.6); q.Enqueue(212.0); q.Enqueue(32.0); q.Enqueue(3.1416);

double sum = 0.0;

Console.Write("Очередь содержит: "); while(q.Count > 0)    {

double val = q. Dequeue ();

Console.Write(val + " "); sum += val;.

}

Console.WriteLine("ХпИтоговая сумма равна " +• sum);

}

}

Вот к какому результату приводит выполнение этой программы.

Очередь содержит: 98.6 212 32 3.1416 Итоговая сумма равна 345.7416

Класс HashSet

Перейти на страницу:

Похожие книги