我正在浏览Java docs以寻找C ++的STL Queue
的Java等价物,但我找到的只是一个名为Queue
的接口和一堆我不能实现的接口做头或尾。
Java是否有Queue
的实现,它只是一个FIFO数据结构而没有增加花里胡哨?我只需要enqueue
,dequeue
和front
操作,数据结构应该允许重复。
答案 0 :(得分:7)
Queue
会奏效。使用您喜欢的任何实现。例如LinkedList
或ConcurrentLinkedQueue
。
enqueue
= offer(..)
dequeue
= poll()
front
= peek()
答案 1 :(得分:3)
该docs页面列出了实现该接口的所有类。因此,举例来说,您可以执行以下操作(免责声明:尚未接近编译器):
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();
答案 2 :(得分:1)
您可以使用LinkedList
。当然,它有许多你不需要的功能,但它也不会对你造成伤害。
答案 3 :(得分:1)
java.util.LinkedList
类可能就是你想要的,方法是“添加”,“删除”和“元素”。
答案 4 :(得分:0)
你可能正在寻找的是一个双端队列。请参阅Deque界面,它正在实现类。