ホームページ  >  記事  >  Java  >  Guava の MapMaker と CacheBuilder は Java マップでの有効期限切れのキー管理をどのように簡素化できるのでしょうか?

Guava の MapMaker と CacheBuilder は Java マップでの有効期限切れのキー管理をどのように簡素化できるのでしょうか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-20 18:48:16778ブラウズ

How Can Guava's MapMaker and CacheBuilder Simplify Expiring Key Management in Java Maps?

Java マップでの有効期限切れキーの管理

Java 開発者として、キーの有効期限切れメカニズムの処理は面倒な作業になることがよくあります。多くの人は、手動によるパージの必要性を排除し、コードベースの実装のみに依存する簡単なソリューションを求めています。この課題を軽減するには、Google コレクション ライブラリ (現在は Guava) を詳しく調べる価値があります。

MapMaker と CacheBuilder の紹介

Guava は、時間ベースの管理のための 2 つの強力なツールを提供します。マップ: MapMaker と CacheBuilder。 MapMaker では、エントリの有効期限を設定する機能など、マップを柔軟にカスタマイズできます。 Guava 10.0 で導入された CacheBuilder は、キャッシュ メカニズムを構成するための最新のインターフェイスを提供します。

有効期限の設定

マップ エントリの有効期限を構成するには、次のコマンドを使用できます。メソッド:

  • MapMaker: 有効期限 (長期間、TimeUnit 単位)
  • CacheBuilder: ExpireAfterWrite(長期間、TimeUnit 単位) またはexpireAfterAccess(long period, TimeUnit単位)

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の機能強化

Guava 10.0 では、元の MapMaker メソッドは非推奨となり、CacheBuilder が使用されます。次の例は、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);
          }
        });

これらのツールを活用すると、Java で時間ベースのマップを簡単に管理でき、期限切れのキーが自動的に削除され、データ処理メカニズムの効率が最適化されます。

以上がGuava の MapMaker と CacheBuilder は Java マップでの有効期限切れのキー管理をどのように簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。