簡単に言えば、これが私がやろうとしていることです:
私は連続しているオブジェクトのコレクションを持っていRange
ます (重なり合っておらず、それらの間にギャップはありません)。それぞれに astart
とend
int が含まれており、別の object への参照が含まれていますobj
。これらの範囲は固定サイズではありません (最初の範囲は 1 ~ 49、2 番目の範囲は 50 ~ 221 など)。このコレクションは非常に大きくなる可能性があります。
コレクション全体を反復処理して各範囲に番号が含まれているかどうかを確認することなく、特定の番号を含む範囲 (より具体的には、それが参照するオブジェクト) を検索する方法を見つけたいと考えています。これらのルックアップは頻繁に実行されるため、速度/パフォーマンスが重要です。
ここで私を助けるかもしれないアルゴリズム/方程式を知っている人はいますか? 私はJavaで書いています。必要に応じて詳細を提供することもできますが、シンプルにしようと思いました。
ありがとう。