Назад
Вперед
1.13. Использование класса Stack
В примере демонстрируются некоторые приемы
работы с объектами класса Stack. На базе этого
класса нетрудно создать стек для хранения
произвольных объектов.
Исходный текст примера
Архив проекта для Java WorkShop 2.0
Немного теории
С помощью класса java.util.Stack вы можете создать
стек, пригодный для хранения объектов любого
класса.
Методы класса Stack позволяют записывать новые
объекты в верхушку стека, извлекать их из стека,
проверять наличие в стеке каких-либо объектов,
копировать объект из верхушки стека (без
удаления этого объекта из стека), а также искать
объекты в стеке.
Описание примера
Наш пример аналогичен предыдущему (см. 1.12. Использование класса Vector),
однако элементы записываются в стек, а не в
массив.
Стек создается следующим образом:
Stack sPoints = new Stack();
После ввода с консоли количества элементов, мы
динамически создаем объекты класса MyPoint и
помещаем их в стек. Для этого в программе
организован цикл:
for(i = 0; i < j; i++)
{
sPoints.push(new MyPoint(i, i + 10));
}
Новые объекты записываются в стек с помощью
метода push.
Извлечение элементов из стека также
выполняется в цикле:
while(!sPoints.empty())
{
MyPoint mpt;
mpt = (MyPoint)sPoints.pop();
mpt.printPoint();
}
Условие завершения цикла - возвращение методом
empty, определенном в классе Stack, значения true. Такое
значение возвращается, когда стек становится
пустым. Заметим, что при попытке извлечения
объекта из пустого стека возникает исключение
EmptyStackException.
Что же касается самой процедуры извлечения, то
она выполняется методом pop.
Описание назначения методов класса MyPoint вы
найдете в примере 1.12.
Использование класса Vector.
Назад Вперед |