在C ++中我所要做的只是
#include <queue> -> including
queue<int> a; -> defining
a.push(1); ->using
但在java中我发现很难使用简单的双端队列 我该怎么办...? 进一步来说, 我应该如何编写代码才能执行相同的步骤 就像我在C ++中所做的那样;包括,定义,使用。
更具体地说, 我想做一个双端队,这样我就可以 在前面或后面的双端队列中添加任何整数。 并通过deque的大小打印该双端队列中的整数
答案 0 :(得分:9)
Java同时具有Queue和Deque类型,其中LinkedList可以作为其中之一:
import java.util.*;
Deque<Integer> q = new LinkedList<Integer>();
q.push(1);
答案 1 :(得分:8)
目前的答案表明Java的java.util.LinkedList是C ++ std::deque的Java翻译。虽然LinkedList
的接口大致等同于std::deque
的接口,但它并未提供std::deque
所做的复杂性保证。特别是,std::deque
通过索引(随机访问)保证O(1)
查找,而LinkedList
具有O(n)
查找。从这个意义上讲(经验丰富的C ++用户看待std::deque
的意义),Java的LinkedList
完全不像std::deque
(尽管它与std::list
非常相似)。 This thread为“C ++ deque的Java等价物”提供了更好的答案。总而言之,标准Java库中没有等效的东西。
答案 2 :(得分:-1)
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()