是否有任何Java库提供随机访问队列实现?

Cal*_*lum 6 java queue collections random-access circular-buffer

我正在使用Java在事件流上实现一个滑动窗口.所以我想要一个允许我执行以下操作的数据结构:

  1. 新事件发生时添加到数据结构的末尾;

  2. 处理旧事件时从数据结构的开头删除;

  3. 获得标准随机访问(size(),get(i))到数据结构的元素; 一般来说,典型的List "读"操作;

  4. 对所有上述操作都有效;

  5. 没有界限.

无需其他访问权限.并且不需要线程安全.

我目前正在使用ArrayList执行此操作,以便开始运行.但我想要更高效的东西; 该remove(0)方法(2以上)是低效用ArrayList.

数字1.和2.是标准的队列式操作.但是,QueueJDK中的实现(例如ArrayDeque)不允许get(i)在3中实现.

所以,我想知道是否有任何有这样的实现,并且适合商业用途.

如果没有,我想我会写自己的......

Jas*_*oon 1

我能想到的唯一可以实现这样一个接口的库是LinkedList,但坦率地说,我不确定性能特征是什么。