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:
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!