我刚刚发现了Guava缓存,我看到的所有示例都使用了map,key和value。
有没有办法为ArrayList使用guava缓存?
我有一个包含元素的ArrayList,每个元素有60秒的生存时间,之后应删除它,我感谢任何建议。
是否可以在删除每个元素后触发一个方法?例如,如果从列表中删除了一个数字,我需要再次重新计算平均值。
答案 0 :(得分:2)
有没有办法为ArrayList使用guava缓存?
Guava Cache旨在通过密钥进行查询。但是,您可以使用ArrayList
的索引作为键,或者选择对象的某些唯一属性作为键(尽管据我所知,您需要按照添加的顺序存储值)。 / p>
是否可以在删除每个元素后触发一个方法?
是的,在构建Cache<K, V>
时,请设置RemovalListener<K,V>
。
例如:
Cache<String, String> cache = CacheBuilder.newBuilder()
.expireAfterWrite(60, TimeUnit.SECONDS)
.removalListener(new RemovalListener<String, String>() {
public void onRemoval(RemovalNotification<String, String> removal) {
// Compute the average here
}
})
.build();