私は、JavaでTreeMapを使用して、最近使用されたキャッシュが最小であるキャッシュを構築しています。私がTreeMapを選択したのは、TreeMap.floorEntry(String)メソッドのためです。 キャッシュ(TreeMap)の最大サイズを指定できます。 次に、LRUの追い出しメカニズムを使用したいので、 キャッシュが最大サイズに達したときに、キャッシュする新しいレコードがあるときには、 キャッシュで新しいレコードを追加し、最長のエントリを削除します。Java TreeMapで最大サイズを設定するには?
答えて
私はあなたの問題を正しく理解してくれることを願っています。 私はConcurrentSkipListMap(floorEntryメソッドもあります)を使用し、私自身の小さな最大サイズコントロールを実装します。
これは私がどうなるのかです:
int maxSize = 100;
ConcurrentSkipListMap<String, String> cache = new ConcurrentSkipListMap<>();
// Check if max size is reached before inserting something in it. Make some room for new entry.
while (cache.size() >= maxSize) {
cache.pollFirstEntry();
}
それは少しハックですが、仕事をする必要があります。
どのようにFirst Entryを選択しますか?キーに基づいているのですか、最初に追加されたエントリですか? – Manos
@Manosよ、そうです。上記のコードはあなたが望むものとまったく同じものではありません。あなたはあなたがキーとして保管しているものを教えてください、あなたのマップの価値は何ですか?いくつかの例をしてください?あなたが作業する情報が少なすぎます。 – lkallas
鍵はStringであり、String.compareTo()は比較に使用できます。この問題を解決するために、キャッシュがmaxSizeに達すると、マップからランダムなエントリを削除してから挿入します。 – Manos
- 1. Java - 整数値を最大画像サイズに設定する
- 2. MySQLでBLOB列の最大サイズを設定する方法は?
- 3. 最大のtomcat gzip圧縮サイズを設定するには?
- 4. Dragonfly:最大画像サイズを設定するには?
- 5. Electron BrowserWindowの最大サイズと最小サイズの設定
- 6. JCS 2.2 - メモリ/インデックスディスクキャッシュの最大サイズを設定する方法は?
- 7. woodstoxで最大属性サイズを設定する
- 8. アプリケーションの起動中にJFrameの最大サイズを設定する
- 9. ログファイルの最大サイズをandroidに設定する方法
- 10. レスキューイメージjqueryリサイズで最大サイズをネイティブイメージサイズに設定
- 11. Javaコンポーネントの最大サイズ
- 12. JMenuItemは整列と最大サイズを設定します
- 13. ブーストASIOキューの最大サイズを設定する
- 14. CGImageRefの最大サイズをALAssetRepresentationから設定する
- 15. 最大サイズを使用するようにKubernetes PVを設定できます。
- 16. mysqlのvarchar()の最大サイズを設定する際のポイントは何ですか?
- 17. Java 8コレクションの最大サイズは
- 18. javaのメソッドの最大サイズは?
- 19. プログラムで最大のJavaヒープサイズを設定する
- 20. CodeIgniterでは、0に画像の最大サイズを設定し、JPGまたはPNG
- 21. Java Tomcatサーバーの要求の最大サイズを指定します。
- 22. kubernetesログファイルの最大サイズの設定方法は?
- 23. バブルチャートのバブルの最小サイズと最大サイズを設定する方法はありますか?
- 24. grpcで最大同時接続数を設定するには
- 25. 最大フォントサイズをJavascriptに設定する
- 26. 設定し、最大値は
- 27. Javaでテキストサイズ設定を取得する方法(最小、最大、選択)
- 28. Java Swing NimbusでJButtonのサイズを設定するには?
- 29. Scrapyプロジェクト(または最大サイズ)のRotatingFileHandlerを設定する方法
- 30. scala TreeMapからキーを設定して取得するには?
最大サイズはありません( 'Collection'の最大サイズは、 'Integer.MAX_VALUE = 2^31 - 1'です)。 –
こんにちはAndy、ご意見ありがとうございます。私はLinkedHashMapを使って同様のことをしました – Manos