-1

如何添加 int 值然后遍历堆栈获取 LIFO 顺序?添加 7 和 1 返回 7 和 1。

   public void calculate_10to99() {

    Stack romanNumeralsStack =  new Stack();
        romanNumeralsStack.add(7);
        romanNumeralsStack.add(1);

        Iterator value = romanNumeralsStack.iterator();

    while (value.hasNext()){
        System.out.println(value.next());
    }
4

2 回答 2

2

像这样做:

public void calculate_10to99() {

    Stack<Integer> romanNumeralsStack =  new Stack<>();
        romanNumeralsStack.push(7);
        romanNumeralsStack.push(1);

    while (!romanNumeralsStack.empty()){
        System.out.println(romanNumeralsStack.pop());
    }
 }

iterator() 方法来自它的超类 Vector 并且只是按顺序返回所有元素,所以 iterator.next() 不会给你 LIFO

于 2020-03-23T19:00:21.697 回答
1

您正在使用迭代器作为

Iterator value = romanNumeralsStack.iterator();

从堆栈中存在的内容中以随机顺序返回元素。

您应该使用另一种方法,例如。这将检查堆栈是否不为空,然后它会继续从顶部弹出元素,使其成为 LIFO。

public static void calculate_10to99() {

        Stack romanNumeralsStack = new Stack();
        romanNumeralsStack.add(7);
        romanNumeralsStack.add(1);

        while (!romanNumeralsStack.isEmpty()){
            System.out.println(romanNumeralsStack.pop());

        }
    }
于 2020-03-23T19:05:54.670 回答