【问题标题】:What's the Java equivalent of C++'s STL Queue?C++ 的 STL 队列的 Java 等价物是什么?
【发布时间】:2011-05-09 12:50:28
【问题描述】:
我正在浏览 Java docs 以寻找 C++ 的 STL Queue 的 Java 等价物,但我发现的只是一个名为 Queue 的接口和一堆我无法正面或反面的实现。
Java 是否有针对 Queue 的实现,它只是一个 FIFO 数据结构,没有额外的花里胡哨?我只需要enqueue、dequeue 和front 操作,并且数据结构应该允许重复。
【问题讨论】:
标签:
java
data-structures
collections
queue
【解决方案1】:
Queue 可以。使用您喜欢的任何实现。例如LinkedList 或ConcurrentLinkedQueue。
enqueue = offer(..)
dequeue = poll()
front = peek()
【解决方案2】:
您可能正在寻找的是一个双端队列。查看Deque 接口,它正在实现类。
【解决方案3】:
该文档页面列出了实现该接口的所有类。因此,例如,您可以执行以下操作(免责声明:尚未靠近编译器):
Queue<E> q = new LinkedList<E>();
E x1 = new E();
E x2 = new E();
E x3;
q.offer(x1);
q.offer(x2);
x3 = q.poll();
【解决方案4】:
java.util.LinkedList 类可能是您想要的,方法是“add”、“remove”和“element”。
【解决方案5】:
您可以使用LinkedList。当然,它有很多你不需要的功能,但它也不会伤害你。