0

まず最初に、「私は Java に非常に慣れていません」(つまり、数日) と前置きしますが、私は本業のプログラマーです。

データをロードしたい状況に遭遇しました。ただし、そのデータをキャッシュして、API への不要な呼び出し (または、データ ソースが何であれ) を防止したいと考えています。少し考えた後、私はかなり合理的なキャッシュスキームを思いつきました: DataCache クラスには 2 つのコレクションがあります: キータイプ「string」と値タイプ「CacheData」を持つハッシュテーブルです。 "。CacheData には 2 つのデータ メンバーがあります。文字列形式の API 呼び出しの実際の結果と、リンクされたリストのノードへの ref (ListIterator?) です。これにより、2 番目のコレクションであるキーのリンク リストが表示されます。アイデアは、データのリクエストが届いたときに、それがハッシュにあるかどうかを確認するというものです。そうでない場合は、API からフェッチし、結果のキーをリンク リストの先頭に追加します。結果を含むハッシュに Data オブジェクトを格納し、リンク リストの最初のノード (先ほど追加したノード) への参照と共に格納します。データがハッシュ内に見つかった場合は、ノードをリンク リストから外して先頭に配置し、CacheData からデータを返します。利点は、私が正しく理解していれば、すべての操作が O(1) で実行されることが保証されていることです。

文字列 (リクエスト) 全体ではなく、「リクエスト」の整数ハッシュ値を連結リストに格納できますか? もしそうなら、その整数を指定してハッシュマップの結果にアクセスするにはどうすればよいですか? (どのメソッドも「int」をパラメーターとしてとらないようです)。また...この状況に対する私のアプローチは健全ですか?それとも、Java でこれを簡単にする何かがおそらくありますか?

4

0 に答える 0