【发布时间】:2014-03-17 13:31:35
【问题描述】:
我正在尝试比较两个单独的堆栈以查看它们是否相同。我有一个循环遍历每个堆栈中的每个对象并比较两个对象。我想要发生的是,如果它们相等,则继续循环并返回 true。如果它们在任何给定点都不相等,则中断循环并返回 false。这是我写的:
public boolean isPalindrome (Stack a, Stack b) {
Object temp1;
Object temp2;
boolean answer;
for (int i = 0; a.size() > 0; i++) {
temp1 = a.pop();
temp2 = b.pop();
if (temp1 != temp2) {
answer = false;
}
else {
answer = true;
}
}
return answer;
}
我看到发生的事情是我有一个布尔值,并且通过每个循环,布尔值被分配一个取决于对象的值,然后在循环结束时,返回该布尔值的最新状态。无论我将变量初始化为什么,它就像循环一样对它完全没有任何作用。您不能在循环中修改或返回布尔值吗?处理这个实例的更好方法是什么?我已经查看了大量其他类似问题的帖子,但他们中的大多数似乎都在尝试一些不同的广告,我想尽可能忠实于我最初的想法,我只需要知道我做错了什么。任何建议都会有很大帮助。谢谢!
【问题讨论】: