LinkedHashMap
LRU キャッシュを実装するのは素晴らしいようです。リンクされたリストの管理に関してオーバーヘッドがあり、スレッドセーフではありませんが、実装が簡素化され、コードでこれらを処理できます。
removeEldestEntry が実装されていて、リストがいっぱいである場合に、LinkedHashMap がリストから削除する要素の数です。
要素を 1 つだけ削除しますか? または合計サイズの何パーセントか。私の懸念は、新しい要素を配置するために要素を1つだけ削除すると、実際のパフォーマンスの問題になることです。ご覧のとおり、再ハッシュ操作には非常にコストがかかります。
誰かがそれがどのように機能するかを提案してください。これらを管理できる場合は、InitialCapacity、LoadFactor、またはその他の方法を使用して要素を削除してください。