Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад]

Библиотека примеров приложений Java

Оглавление
Базовые типы

Замещающие типы
Без указателей
Массивы
Структурное программи-
рование

Обработка исключений
Возбуждение исключений
Классы обработки исключений
Блок finally
Строки String
Класс Math
Класс Vector
Класс Stack
Словарь на базе Hashtable
Словарь на базе Properties
Цифровые часы
Собственный класс
Наследование классов

Интерфейсы

Назад Вперед

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.

Назад Вперед

[Назад]