我在CS(Java)入门课程中,老师不允许我们在我们的队列或Stack上使用.peek()。
显然在堆栈上这是一个相当容易的解决方法,因为我们可能拥有任意数量的临时注入。可以简单地将值弹出到变量上并将其重新打开。这可能是它在幕后实施的方式。
在队列中,这会使事情变得复杂一些,但仍然可以完成。但是我不确定java如何实现queue.peek所以我不能在这里找到替换。
最终我在想。为什么不鼓励窥视堆栈和队列是一种好习惯?
答案 0 :(得分:5)
为什么不鼓励窥视堆栈和队列是一种好习惯?
由于:
peek()
然后pop()
或remove()
,则无法保证每次都会获得相同的元素。现在,显然,peek()
并非所有用途都不好。但这些都是它可能不好的原因。
但我也同意那些建议你问老师的人!
1 - ...在意义上轮询查看队列前面的内容,或测试它是否为空/非空。