期間(開始、終了)によって定義され、複雑な計算結果を保持するこの期間のカウンターとなるデータ構造のセットを格納する必要があります。データ構造の簡略化された定義は次のとおりです。
public class CounterBag {
private Period period; // collection key
private Counter counter;
// accessors
// ...
}
これPeriod
は次のように単純です。
public class Period {
public DateTime start;
public DateTime end;
// accessors
// ...
}
CounterBag
によって定義されたオブジェクトを保持するコレクションが必要Periods
です。コレクションは、による効率的なルックアップ(ここにキャッチがあります!)を提供する必要がありますlong timeInMillis
。したがって、上書きしHashMap
たくないので、実際にはオプションではありません(両方が必要です)。コレクションは(終了日で)並べ替える必要があります。sは柔軟な期間であり、ルックアップを実行する部分にはわかりません。equals
hashcode
CounterBag
Period
Period
Java標準APIまたはいくつかのオープンソースライブラリに、それを解決するのに役立つすぐに使えるコレクションがあるのだろうか?日付による効率的なルックアップの実装を可能にする、ある種のソートされたセットまたはソートされたマップ。日付によるルックアップは、日付が範囲内にあるaCounterBag
を返しPeriod
ます。
あなたの提案に感謝します。