我正在用 Java 实现事件流上的滑动窗口。所以我想要一个允许我执行以下操作的数据结构:
当新事件发生时添加到数据结构的末尾;
处理旧事件时从数据结构的开头删除;
获得对数据结构元素的标准随机访问(
size()
, );get(i)
一般来说,典型的列表“读取”操作;对上述所有操作都是有效的;
是无界的。
不需要其他访问权限。并且不需要线程安全。
我目前正在使用ArrayList执行此操作,以启动和运行。但我想要更有效的东西;remove(0)
方法 (2. above)对于ArrayList
.
数字 1. 和 2. 是标准的Queue式操作。但是,Queue
JDK 中的实现(例如ArrayDeque)不允许get(i)
in 3.
所以,我想知道是否有任何库有这样的实现,并且适合商业用途。
如果没有,我想我会求助于自己写...