为什么这些陈述是平等的? java中的堆栈方法

时间:2013-11-14 16:55:38

标签: java stack equivalent

为什么以下陈述相同? emptyRow和emptyCol是Integer堆栈,Grid是一个二维整数数组。你不需要知道程序的功能,但是如果你想知道它是一个使用基本反向跟踪的数独解谜算法。

这两个语句都允许程序运行没有任何错误,但我不明白这是怎么回事,因为.pop()返回第一个实现中最顶层的整数,而第二个语句首先弹出最顶层的项目直接检索那些整数。

陈述A:

Grid[emptyRow.pop()][emptyCol.pop()] = 0;

陈述B:

emptyRow.pop();
emptyCol.pop();
Grid[emptyRow.peek()][emptyCol.peek()] = 0;

很抱歉,如果这是我的代码的一个愚蠢的逻辑问题,我只是检查是否有一些我不知道堆栈操作是如何工作的。

1 个答案:

答案 0 :(得分:1)

陈述A与

相同
Grid[emptyRow.peek()][emptyCol.peek()] = 0;
emptyRow.pop();
emptyCol.pop();

我认为你的订单很混乱,也许在你的用例中它并不重要但代码却不一样。