1 LRUとは何か LRU (Least Recently Used) は、最も最近使用されていないデータです。その基本的な考え方は、「データが最近アクセスされた場合、将来アクセスされる可能性が高くなる」というものです。したがって、LRU アルゴリズムは、過去のアクセス レコードに従ってデータを並べ替えます。十分なスペースがない場合は、最も最近使用されていないデータが削除されます。 2 LRU実装の原則 LRU アルゴリズムは最近使用されたデータを優先するため、ソートをサポートするデータ構造が必要であり、リンク リストが非常に適しています。 配列を検討してみませんか? LRU アルゴリズムは一般的にアクセス頻度の高いシナリオで使用されるため、データの移動は頻繁に行われます。配列を移動したら、移動した値の後ろにあるすべてのデータの位置を変更する必要があります。これは非効率的であり、推奨されません。 3. 双方向リンクリストのLinkedHashMap 先ほど、LRU アルゴリズムの実装はリンク リストを使用して実装できることを分析しました。Java の LinkedHashMap は双方向のリンク リストです。 LinkedHashMap は HashMap のサブクラスです。HashMap データ構造に基づいて、すべてのエントリをリンクする双方向リンク リストも維持します。このリンク リストは反復順序を定義します。これは通常、データが挿入される順序です。 LinkedHashMap のソースコードを見てみましょう。 ソース コードの定義から、accessOrder プロパティで LinkedHashMap をトラバースする順序を指定できることがわかります。true はアクセス順序、false は挿入順序を意味し、デフォルトは false です。 LRU はアクセス順序に敏感なので、単純に検証するために true を使用します。
結果は次のとおりです。
accessOrder = true を設定すると、LinkedHashMap をアクセス順にソートできることがわかります。 では、LinkedHashMap はどのようにそれを実現するのでしょうか? getメソッドを見てみましょう
afterNodeAccess メソッドをもう一度見てみると、ノードが移動されていることがわかります。ここまでで、ノードを移動する原理は理解できました。
現在、LinkedHashMap を LRU として使用する場合、容量が限られている場合に古いデータをどのように削除するかという、まだ気になる問題があります。 戻ってputメソッドを見てみましょう
put メソッドをステップごとに見ていくと、removeEldestEntry(first) メソッドが true を返すとヘッドが削除され、最近使用されていないデータが排除されることがわかります。完全に LRU に準拠しています。 4 最も単純なLRU実装 上記の分析に基づいて、最も単純なLRUを次のように実装できます。
|
>>: COVID-19パンデミックは不動産業界のインテリジェントな変革とアップグレードを加速させた
今では、このビッグモデルもその失敗から学んでいます。香港科技大学とファーウェイ・ノアの箱舟研究所によ...
人工知能と機械学習は、ビジネスの成功にとって貴重な資産となるでしょう。 AI を実装することで、企業...
誰のため?なぜ?コミュニティ顔認識システム導入の需要の源と目的多くの居住コミュニティが顔認識システム...
AI が社会に重大なリスクをもたらすという警告が見出しで報じられているにもかかわらず、ボストン コン...
翻訳者 |ブガッティレビュー | Chonglou最近のゲーム開発の仕事は綱渡りのようなものです。ゲ...
デジタル化が進む世界では、すべてがスピードと個々の顧客ニーズの特定と対応を中心に展開されます。サービ...
ノアとシャオウが編集制作:51CTO テクノロジースタック(WeChat ID:blog)昨日、テク...
美景記者:李紹廷 美景編集者:温多2020年を振り返ると、新型コロナウイルス感染症の突然の流行は間違...
近年、ますます大規模なデータセットを処理するために SaaS (サービスとしてのソフトウェア) モデ...
[[396193]]アクセス制御市場世界のアクセス制御システム市場は、2020 年の 86 億米ドル...
ゲスト|百度インテリジェントクラウド技術委員会委員長 孫克氏執筆者 | Yun Zhao 2023年...
[[383269]] [51CTO.com クイック翻訳] 過去数年間、金融業界では、業界の絶え間な...
北京時間2月15日朝のニュース、ブルームバーグ通信によると、マスク氏が提唱するAI研究機関OpenA...