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
Lepaskan: 2024-11-24 14:42:15
asal
553 orang telah melayarinya

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);
         }
       });
Salin selepas log masuk

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);
          }
        });
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan