是否有充分的理由阻止队列中的堆栈中的.peek()?

时间:2017-11-06 07:12:18

标签: java

我在CS(Java)入门课程中,老师不允许我们在我们的队列或Stack上使用.peek()。

显然在堆栈上这是一个相当容易的解决方法,因为我们可能拥有任意数量的临时注入。可以简单地将值弹出到变量上并将其重新打开。这可能是它在幕后实施的方式。

在队列中,这会使事情变得复杂一些,但仍然可以完成。但是我不确定java如何实现queue.peek所以我不能在这里找到替换。

最终我在想。为什么不鼓励窥视堆栈和队列是一种好习惯?

1 个答案:

答案 0 :(得分:5)

  

为什么不鼓励窥视堆栈和队列是一种好习惯?

由于:

  1. 偷看通常与投票 1 有关,投票是浪费。
  2. 如果您在多线程应用程序中调用peek()然后pop()remove(),则无法保证每次都会获得相同的元素。
  3. 现在,显然,peek()并非所有用途都不好。但这些都是它可能不好的原因。

    但我也同意那些建议你问老师的人!

    1 - ...在意义上轮询查看队列前面的内容,或测试它是否为空/非空。