Rumah >Java >javaTutorial >Bagaimana untuk Mencipta Peta Tamat Tempoh Berasaskan Masa di Jawa?

Bagaimana untuk Mencipta Peta Tamat Tempoh Berasaskan Masa di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-11-27 14:35:12223semak imbas

How to Create a Time-Based Expiring Map in Java?

Peta/Cache Berasaskan Masa Java dengan Kekunci Tamat Tempoh

S: Adakah terdapat Peta Java terbina dalam atau struktur data serupa yang secara automatik mengalih keluar masukan selepas selang waktu tertentu?

J: Ya, Google Collections (kini dikenali sebagai Guava) menyediakan Kelas MapMaker dengan kefungsian yang diingini:

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

Nota: Mulai Guava 10.0, kaedah MapMaker yang dinyatakan di atas tidak digunakan lagi memihak kepada kelas 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 ini menyediakan fleksibiliti tambahan dan API yang lebih moden untuk mengurus tingkah laku cache.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Peta Tamat Tempoh Berasaskan Masa di Jawa?. 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