2013-02-14 4 views
-1

Я использую Java стека следующим образом:Java Поп и Peek - java.util.Stack.peek (Unknown Source) Ошибка

Stack<Integer> stack_y = new Stack<Integer>();

А потом в какой-то момент я использую толчок, быстрый взгляд и поп:

stack_y.push(1); 
//some code 
peek_value=stack_y.peek(); 
//some code 
pop=stack_y.pop(); 

в то время как push работает нормально, я получаю следующее сообщение об ошибке для pop и peek:

Exception in thread "main" java.util.EmptyStackException 
    at java.util.Stack.peek(Unknown Source) 
    at java.util.Stack.pop(Unknown Source) 
    at Hw1Node.DFS(Hw1Node.java:246) 

Также он дает ошибку в основной функции в строке, где я вызываю функцию.

+2

вы толкаете так часто, как вы выскакиваете? Если вы выскакиваете больше, чем вы нажимаете, это вызывает эту ошибку. – 75inchpianist

+0

Присылайте все свои прерывистые коды, пожалуйста, особенно если есть цикл. @ 75inchpianist правильно относится к потенциальному неравенству push-pop-звонков. – JoshDM

+1

- это ваш peek_value типа E? –

ответ

1

Если вы указали EmptyStackException информацию, которую видите, то есть «Бросил методами в классе Stack, чтобы указать, что стек пуст».

Таким образом, вы пытаетесь сделать .pop() или peek(), когда стек пуст. Помните, что вы можете сделать только один pop() за каждый push(), который вы сделали ранее.

 Смежные вопросы

  • Нет связанных вопросов^_^