Javaで、イベントのストリーム上にスライディングウィンドウを実装しています。したがって、次のことを実行できるデータ構造が必要です。
新しいイベントが発生したときにデータ構造の最後に追加します。
古いイベントが処理されるときにデータ構造の先頭から削除します。
データ構造の要素への標準のランダムアクセス(
size()
、 )を取得します。get(i)
一般に、一般的なリストの「読み取り」操作。上記のすべての操作に効率的です。
無制限です。
他のアクセスは必要ありません。また、スレッドセーフは必要ありません。
私は現在、物事を稼働させるために、 ArrayListを使用してこれを行っています。しかし、私はもっと効率的なものが欲しいです。方法(上記のremove(0)
2.)は、。を使用すると非効率的ArrayList
です。
番号1と2は、標準のキュースタイルの操作です。ただし、Queue
JDKでの実装(ArrayDequeなど)では、3では許可されていませんget(i)
。
ですから、そのような実装があり、商用利用に適したライブラリが世の中にあるのではないかと思います。
そうでなければ、私は自分で書くことに頼ると思います...