I am using Guava LoadingCache to cache some of the results. Using load method I fetch results from other source and put into cache using 'put(key,value)
'.
Now the problem I am trying to solve is: I want to get all the available results in that cache with out passing any keys. Because I am interested in taking all the values presented in the cache at that time regardless of any specific keys.
getall(Iterable<?> keys)
or getAllPresent(Iterable<?> keys)
methods are there but those are expecting the keys to be passed.
答案 0 :(得分:4)
You can use (Loading)Cache#asMap
view and operate on returned ConcurrentMap
. There's nice description on Guava wiki page:
You can view any
Cache
as aConcurrentMap
using itsasMap
view, but how theasMap
view interacts with theCache
requires some explanation.
cache.asMap()
contains all entries that are currently loaded in the cache. So, for example,cache.asMap().keySet()
contains all the currently loaded keys.