我想知道是否有一个数据结构为两端的插入/从两端到两端的插入/删除提供恒定的工作量(O(1)),例如LinkedList提供的,以及从随机索引的检索,例如HashMap提供的。

或者,也许我可以通过组合数据结构以某种方式实现类似的目标。

最佳答案

看来 ArrayDeque 符合您的所有要求。引用其Javadoc:

大多数ArrayDeque操作均以固定的固定时间运行。

09-25 22:03