Это серьезно смущает и расстраивает меня. Я уже задавал один вопрос относительно этой же программы здесь . Если исходить из этого кода, у меня возникла еще одна проблема со стеком. Вот метод, который использует массив стеков, называемый блоками, из предыдущего поста:
static void pileOnto(int sBlock, int rBlock)
{
boolean flag = true;
while ((!blocks[rBlock].empty()) && (flag))
{
retainer.push((Integer)blocks[sBlock].pop());
if (((Integer)blocks[rBlock].peek()).intValue() == sBlock) {flag = false;}
}
while (((Integer)blocks[rBlock].peek()).intValue() != rBlock)
{
returnBlock(((Integer)blocks[rBlock].pop()).intValue());
}
}
Первый цикл while должен заканчиваться, когда стек пуст или когда последнее извлеченное целое число совпадает с sBlock. Проблема, которая у меня возникает, состоит в том, что block [rBlock] .empty () никогда не возвращает true, даже когда программа вылетает из-за попытки выскочить из блоков [rBlock], то есть в стеке не может быть ничего. Может кто-нибудь объяснить мне, что происходит?