在堆栈程序上获取EmptyStackException

时间:2020-07-22 05:15:23

标签: stack

新手在这里。我查看了很多与此错误相关的帖子,但是在我的代码中实现修复没有任何运气。此方法采用两个对象栈,并对其进行比较以查看它们是否具有相同顺序的相同值。使用教授的测试代码,我得到了java.util.EmptyStackException。可以肯定,它与k1 / k2 pop命令有关。希望在处理此异常方面有所帮助。作为参考,这是用于测试的堆栈: [1/2 / 10、1 / 1 / 10、1 / 1 / 10、1 / 1 / 10、1 / 1 / 10、1 / 1 / 10、1 / 1 / 10、1 / 1 / 10、1 / 1/10,1/1/10]

任何建议或指导都将不胜感激!:

public static boolean equals(Stack<CalendarDate> s1, Stack<CalendarDate> s2) {
    Stack<CalendarDate> s3 = new Stack<>();
    int n1 = s1.size();
    int n2 = s2.size();
    if (s1.empty() || s2.empty()) {
        return true;
    }
    if (n1 != n2) {
            return false;
        }
    boolean compare = true;
    while (!s1.empty()) {
        CalendarDate k1 = s1.pop();
        CalendarDate k2 = s2.pop();
        s3.push(k1);
        s3.push(k2);

        if (k1 != k2) {
            compare = false;
        }
    }
         while (!s3.empty()) {
             s1.push(s3.pop());
             s2.push(s3.pop());
         } 
     return compare;
}

}

0 个答案:

没有答案