次の形式のデータ タプルに取り組んでいます: [IP、提供されるバイト数、時間]。各 IP に提供されるバイト数をカウントするために、IP で HashMap を作成しました。次に、最近使用されていないキーと値のペアをいくつか削除して、スペースを増やす必要があることに気付きました。時間の制約、たとえば 1 時間を作成し、その期間にアクションのないキーと値のペアを削除したいと考えています。そのため、各ペアの更新時間を節約する必要があります。実際、良いパフォーマンスを得るためには、ペアをタイムスタンプでソートするのが合理的です。
したがって、私がやりたいことは、キーと値のペアの作成または更新時間に基づいてソートされたリストを維持することです。これらの作成時間と更新時間を明示的に知る必要があります。私は 2 つの異なるアイデアを思いつきましたが、どちらをどのように使用するかが正確にわかりました。ここに私の2つのアイデアがあります:
- 最近更新されたキーと値のペアのタイムスタンプを指す head を持つ LinkedList が必要で、このキーと値のペアがリスト ノードを指すようにします。
- 作成/更新時間に基づいてソートされた順序で HashMap を維持する必要があります。おそらく、整数値とタイムスタンプを示す長い値を使用して、値を整数からオブジェクトに変更する必要があります。
問題は、効率的な追加/削除/取得のパフォーマンスのためにこれらを Java で実装する方法です。または、作成/更新時間でソートされた HashMap を取得するために使用できるライブラリはどれですか?