Heim > Java > javaLernprogramm > Wie erstelle ich eine zeitbasierte ablaufende Karte in Java?

Wie erstelle ich eine zeitbasierte ablaufende Karte in Java?

Barbara Streisand
Freigeben: 2024-11-27 14:35:12
Original
251 Leute haben es durchsucht

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

Zeitbasierte Java-Karte/Cache mit ablaufenden Schlüsseln

F: Gibt es eine integrierte Java-Karte oder eine ähnliche Datenstruktur, die automatisch funktioniert? Entfernt Einträge nach einem bestimmten Intervall?

A: Ja, Google Collections (jetzt bekannt als Guava) stellt einer MapMaker-Klasse das gewünschte bereit Funktionalität:

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);
         }
       });
Nach dem Login kopieren

Hinweis:Ab Guava 10.0 sind die oben genannten MapMaker-Methoden zugunsten der CacheBuilder-Klasse veraltet:

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);
          }
        });
Nach dem Login kopieren

Dieser CacheBuilder bietet zusätzliche Flexibilität und eine modernere API zur Verwaltung des Cache-Verhaltens.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine zeitbasierte ablaufende Karte in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage