期限切れキーを含む Java 時間ベースのマップ/キャッシュ
Q: 自動的に指定された間隔の後にエントリを削除しますか?
A: はい、Google コレクション (現在は Guava として知られています) は、必要な機能を備えた MapMaker クラス:
ConcurrentMap<Key, Graph> graphs = new MapMaker() .concurrencyLevel(4) .softKeys() .weakValues() .maximumSize(10000) .expiration(10, TimeUnit.MINUTES) .makeComputingMap( new Function<Key, Graph>() { public Graph apply(Key key) { return createExpensiveGraph(key); } });
注: Guava 10.0 では、上記の MapMaker メソッドは非推奨になり、CacheBuilder クラスが優先されます:
LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder() .maximumSize(10000) .expireAfterWrite(10, TimeUnit.MINUTES) .build( new CacheLoader<Key, Graph>() { public Graph load(Key key) throws AnyException { return createExpensiveGraph(key); } });
この CacheBuilder は、キャッシュ動作を管理するためのさらなる柔軟性とより最新の API を提供します。
以上がJava で時間ベースの有効期限マップを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。