C++ deque的Java等价物是什么?

5
在 C++ 中,我只需要做的是:
#include <queue> -> including
queue<int> a; -> defining
a.push(1); ->using

但是在Java中,我发现很难使用简单的deque,我该怎么办...? 更具体地说,如何编写代码以简单地执行与C++中相同的步骤,包括定义和使用。

更具体地说,我想制作一个deque,以便我可以将任何整数添加到deque的前面或后面。并按deque的大小打印那些整数。


2
一个更合适的标题应该是“Java中与C++ deque相当的数据结构是什么”。 - Murali VP
“按deque的大小打印整数”是什么意思? - Paul
如果您使用集成开发环境(IDE),它将帮助您查找要导入的类以及如何构建代码。免费的IDE包括:IntelliJ CE、Netbeans或Eclipse。 - Peter Lawrey
3个回答

10
当前的答案建议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)。 此线程 提供了更好的答案,回答“什么是C++ deque的Java等价物”。总之,在标准Java库中没有等效物。

9

Java有队列双端队列类型,还有链表等其他类型,可以充当其中任何一种:

import java.util.*;
Deque<Integer> q = new LinkedList<Integer>();
q.push(1);

如何打印队列中的所有数字,例如如果我在队列中添加1、2、3、4,它将打印为1 2 3 4。 - hongtaesuk
1
这听起来像是作业。你有尝试过吗?展示一些代码并指出你遇到的问题。 - Ryan Stewart

-1

看看java.util.LinkedList

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()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接