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

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

Метод

Описание

public

T Peek()

Возвращает элемент, находящийся на вершине стека, но не удаляет его

public

T Pop()

Возвращает элемент, находящийся на вершине стека, удаляя его в процессе работы

public

void Push(Titem)

Помещает элемент i tern в стек

public

T[] ToArrayO

Возвращает массив, содержащий копии элементов вызывающего стека

public

void TrimExcessO

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

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

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

using System.Collections.Generic;

class GenStackDemo { static void Main() {

Stack st = new Stack();

st.Push("один"); st.Push("два"); st.Push("три"); st.Push("четыре"); st.Push("пять");

while(st.Count > 0) { string str = st.Pop();

Console.Write(str + " ");

}

Console.WriteLine ();    '

}

}

При выполнении этой программы получается следующий результат.

пять четыре три два один

Класс Queue

КлассQueueявляется обобщенным эквивалентом класса необобщенной коллекцииQueue.В нем поддерживается очередь в виде списка, действующего по принципу "первым пришел — первым обслужен". В этом классе реализуются интерфейсыICollection, IEnumerableиIEnumerable.Кроме того, в классеQueueнепосредственно реализуются методыClear(), Contains() иCopyTo(), определенные в интерфейсеICollection.А методыAdd() иRemove() в этом классе не поддерживаются, как, впрочем, и свойствоIsReadOnly.Коллекция классаQueueимеет динамический характер, расширяясь по мере необходимости, чтобы вместить все элементы, которые должны храниться в ней. В классеQueueопределяются следующие конструкторы.

public Queue()

public Queue(intcapacity)

public Queue(IEnumerablecollection)

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

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