我刚刚发现了 Guava Caching,我看到的所有示例都是使用 map、key 和 value。
有没有办法将番石榴缓存用于 ArrayList?
我有一个包含元素的 ArrayList,每个元素有 60 秒的生存时间,之后它应该被删除,我很感激任何建议。
是否可以在删除每个元素后触发方法?例如,如果从列表中删除了一个数字,我需要再次重新计算平均值。
我刚刚发现了 Guava Caching,我看到的所有示例都是使用 map、key 和 value。
有没有办法将番石榴缓存用于 ArrayList?
我有一个包含元素的 ArrayList,每个元素有 60 秒的生存时间,之后它应该被删除,我很感激任何建议。
是否可以在删除每个元素后触发方法?例如,如果从列表中删除了一个数字,我需要再次重新计算平均值。
有没有办法将番石榴缓存用于 ArrayList?
Guava Cache 设计为按键查询。但是,您可以使用您的索引ArrayList
作为键或选择对象的某些唯一属性作为键(尽管据我了解,您需要按添加顺序存储值)。
是否可以在删除每个元素后触发方法?
是的,在构建您的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();