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!