在 C++ 中,我所要做的就是
#include <queue> -> including
queue<int> a; -> defining
a.push(1); ->using
但是在java中我发现很难使用简单的双端队列我应该怎么做......?更具体地说,我应该如何编写代码以简单地执行与 C++ 中相同的步骤;包括,定义,使用。
更具体地说,我想创建一个双端队列,以便可以在双端队列的前面或后面添加任何整数。并按双端队列的大小打印该双端队列中的整数
Java 有Queue和Deque两种类型,而LinkedList等可以充当其中任何一种:
import java.util.*;
Deque<Integer> q = new LinkedList<Integer>();
q.push(1);
当前的答案表明 Java 的java.util.LinkedList是 C++ 的std::deque的 Java 翻译。虽然LinkedList
确实有一个与 的接口大致等效的接口std::deque
,但它并没有提供复杂性保证std::deque
。特别是,std::deque
保证O(1)
按索引查找(随机访问),同时LinkedList
进行O(n)
查找。在这个意义上(有经验的 C++ 用户查看的意义上std::deque
),JavaLinkedList
一点也不像std::deque
(尽管它非常像std::list
)。该线程为“什么是 C++ 双端队列的 Java 等价物”这个问题提供了更好的答案。总而言之,标准 Java 库中没有等价物。
LinkedList<Integer> linkedList = new LinkedList<Integer>();
linkedList.add(5);
linkedList.addFirst(2); // add to front, equivalent to push()
linkedList.addLast(3); // add to end, equivalent to add()