【发布时间】:2012-03-09 17:28:41
【问题描述】:
好的,所以我已经使用 Java 很长时间了,最近一直在准备我的 OCJP 考试。我想知道是否有人能够提供任何关于为什么方法名称为“poll”(而不是更传统的“pop”)和“offer”(与更传统的“推”相反)被选择了吗?我正在专门研究 java.util.Queue 接口,但也会对更一般的解释感兴趣:)
这实际上是一个学术问题,而不是任何特定的编码场景,因为我只是想弄明白为什么 Sun(因为这是在 Oracle 收购它们之前完成的)会选择他们所做的名称。
哦,在任何人决定将我钉在十字架上或放弃指向 lmgtfy 的链接之前...在这里发帖解释一下,然后我提前道歉。
【问题讨论】:
-
队列可以为空。空堆栈上的弹出操作没有多大意义,因此将其称为“轮询”更有意义 - 如果可用,则获取某些内容,否则什么也不做。
-
这更有意义......我一直在比较 Stack 和 C++ std 类的堆栈和队列(更不用说 JS 中的数组,哈哈)。在 duffymo、Tomasz 和 ruakh 的回答之间——并且更彻底地查看 api 描述——我想我明白他们为什么选择避免使用 Queue 的名称“push”和“pop”。感谢大家的精彩回复!