Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mencipta Peta atau Cache Tamat Tempoh Berasaskan Masa dalam Java Menggunakan Jambu Batu?

Bagaimanakah Saya Boleh Mencipta Peta atau Cache Tamat Tempoh Berasaskan Masa dalam Java Menggunakan Jambu Batu?

Patricia Arquette
Patricia Arquetteasal
2024-11-24 14:42:15574semak imbas

How Can I Create a Time-Based Expiring Map or Cache in Java Using Guava?

Peta/Cache Berasaskan Masa Java dengan Kekunci Tamat Tempoh

Dalam bahasa pengaturcaraan Java, mengurus entri berasaskan masa dalam peta atau cache adalah keperluan biasa. Artikel ini menyediakan penyelesaian menggunakan Google Collections (Guava) untuk pembersihan automatik entri tamat tempoh.

Penyelesaian

Kelas MapMaker Guava boleh mencipta peta berasaskan masa dengan tamat tempoh boleh laras tetapan. API MapMaker membenarkan penyesuaian pelbagai parameter, seperti:

  • Tahap keselarasan
  • Jenis kunci dan nilai (kuat/lembut/lemah)
  • Saiz maksimum
  • Masa tamat tempoh

Penggunaan Contoh

Coretan kod berikut menunjukkan cara membuat peta berasaskan masa serentak:

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);
         }
       });

Dalam contoh ini, peta secara automatik membersihkan entri yang telah tamat tempoh setiap 10 minit.

Kemas kini

Dalam Jambu Batu 10.0 dan kemudiannya, kaedah MapMaker telah ditamatkan dan memihak kepada 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);
          }
        });

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Peta atau Cache Tamat Tempoh Berasaskan Masa dalam Java Menggunakan Jambu Batu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn