如何在不传递任何键的情况下从guava LoadingCache获取所有值

Dav*_*ave 7 java caching guava

我正在使用Guava LoadingCache来缓存一些结果。使用加载方法,我从其他来源获取结果,并使用' put(key,value)' 将其放入缓存。现在我要解决的问题是:我想在不传递任何键的情况下获得该缓存中的所有可用结果。因为我有兴趣获取当时在缓存中显示的所有值,而不管任何特定键。

getall(Iterable<?> keys)getAllPresent(Iterable<?> keys)方法,但那些期望键被传递。

Xae*_*ess 7

您可以使用(Loading)Cache#asMapview并对其进行操作ConcurrentMap。Guava Wiki页面上有很好的描述:

您可以查看任何Cache一个ConcurrentMap使用它的asMap观点,但如何asMap与视图交互Cache需要一些解释。

  • cache.asMap()包含当前在缓存中加载的所有条目。因此,例如,cache.asMap().keySet()包含所有当前加载的键。