与std::deque相当的Java集合
<>我是一个比较新的java程序员,来自C++/STL,我正在寻找一个具有这些特性的类(C++的STD::DeQue:我理解的):- O(1)开始/结束时的插入/移除性能
- O(1)按索引查找的性能
- 是可增长的集合(不需要固定大小的界限)
有没有类似的Java语言?我找到了Java 1.6[ArrayQue]类,它具有插入/删除和可增长的特性,但似乎没有按索引进行查找,除非调用toArray(),而不是O(1)
你可以在下面搜索框中键入要查询的问题!
有没有类似的Java语言?我找到了Java 1.6[ArrayQue]类,它具有插入/删除和可增长的特性,但似乎没有按索引进行查找,除非调用toArray(),而不是O(1)
# 1 楼答案
下面是一个随时可用的circular buffer implemented in Java, CircularArrayList。不过,它在被创造出来后是不能生长的。(免责声明:此链接指向我自己的网站)
另一个在网络上浮动的选项是one from the Java Specialists Newsletter。我从未使用过这个,原因如下:
# 2 楼答案
Primitive Collections for Java有一个带有get(int idx)方法的ArrayQue
http://sourceforge.net/projects/pcj
不过我不能保证这个项目的质量
另一种方法是获取JDK ArrayDeque源代码,并自己添加get(int idx)方法。应该相对容易
编辑:如果您打算以高度多线程的方式使用deque,我会选择“修补JDK的ArrayQue”路线。这个实现已经过全面测试,并在新的java中使用。util。并发ForkJoin框架