我想知道是否有一个数据结构为两端的插入/删除提供了持续的努力(O(1)),例如LinkedList提供,以及从随机索引中检索,例如HashMap提供。
或者,如果我可以通过数据结构的组合以某种方式实现类似的东西。
答案 0 :(得分:3)
似乎ArrayDeque
符合您的所有要求。引用它的Javadoc:
大多数ArrayDeque操作以分摊的常量时间运行。
答案 1 :(得分:1)
hashmap是我认为最快的数据结构
删除:O(1) 尺寸:O(1) 值:O(n)(在遍历迭代器时)