java 队列和堆栈
我最近一直在研究一些需要堆栈和队列的Java代码。 使用的选择不是立即显而易见的。 有一个Queue接口,但没有明确的具体实现要使用。 还有一个Stack类,但是javadocs指出其他类“应该优先于此类使用”。 那么,您对Java中的堆栈和队列使用哪种实现?
我发现我的经验法则是可以将ArrayDeque类同时用于Stack和Queues,但下面提供了更多详细信息。
通用定义
首先,让我们从一些定义开始。 在该词的常用用法中,队列是FIFO(先进先出)。 就像在邮局排队的第一个人一样。 堆栈为LIFO(后进先出)。 想象一堆书–您放在书堆中的最后一本书是您摘下的第一本书。
Java中的选择
在Java中,情况稍微复杂一些,但原理相同。 有前面提到的