Java 等同于 std::deque

标签 java collections deque

我是一名来自 C++/STL 的相对较新的 Java 程序员,我正在寻找具有这些特征的类(据我所知,C++ std::deque 具有):

  1. 在开始/结束时插入/移除的性能为 O(1)
  2. 按索引查找的 O(1) 性能
  3. 是可增长的集合(不需要固定大小的界限)

是否有与此等效的 Java?我发现 Java 1.6 [ArrayDeque] 类具有插入/删除和可增长的特性,但似乎没有按索引查找,除非您调用 toArray(),这不是 O(1)。

最佳答案

Java 的原始集合有一个带有 get(int idx) 方法的 ArrayDeque。

http://sourceforge.net/projects/pcj

不过我不能保证这个项目的质量。

另一种方法是获取 JDK ArrayDeque 源并自己添加 get(int idx) 方法。应该比较容易。

编辑:如果您打算以高度多线程的方式使用双端队列,我会选择“修补 JDK 的 ArrayDeque”路线。此实现已经过全面测试,并在新的 java.util.concurrent ForkJoin 框架中使用。

关于Java 等同于 std::deque,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/350063/

相关文章:

java - spring表单路径数据绑定(bind)属性的文档

Java Set迭代器,删除元素安全吗?

python-3.x - PyCharm 中的弱警告 : Unexpected argument

c++ - 为什么 deque::erase() 调用赋值运算符?

c++ - 在末尾移动容器的项目(双端队列)

C++填充双端队列错误分配

java - 您是否通过将方法内变量声明为属性来节省垃圾收集器的工作?

java - 在 C 中以\0 结尾的串联字符串

java - 什么集合最适合实现该计划?

java - 常见迭代器错误的解释