Ваша проблема , когда вы получаете итератор. Вы получаете это при создании объекта myStack (пожалуйста, переименуйте класс в MyStack
), , затем измените стек , затем используйте итератор, и это не сработает, так как вы используете итератор после стек был изменен. Вместо этого вам нужно извлечь итератор непосредственно перед использованием в верхней части метода printStack()
, чтобы он был действительным и стабильным итератором, представляющим состояние стека в то время .
public class MyStack extends Stack<myObject> {
public void printStack() {
Iterator<myObject> iter = this.iterator(); // *** here***
while(iter.hasNext()) {
myObject temp = iter.next();
System.out.print(temp.toString());
}
}
Кроме того, вы захотите изучить и использовать Соглашения об именах Java . Имена переменных должны начинаться со строчной буквы, а имена классов - с заглавной. Изучение этого и последующее позволит нам лучше понять ваш код и позволит вам лучше понять код других.