新手在这里。我查看了很多与此错误相关的帖子,但是在我的代码中实现修复没有任何运气。此方法采用两个对象栈,并对其进行比较以查看它们是否具有相同顺序的相同值。使用教授的测试代码,我得到了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;
}
}