MapMaker和ReferenceMap - Google Collections

时间:2010-01-11 23:09:55

标签: guava

据我所知,Google Collections的alpha版本中的ReferenceMap已被MapMaker取代。

我将这个ReferenceMap构造函数与支持映射一起使用:

public ReferenceMap(ReferenceType keyReferenceType, ReferenceType
       valueReferenceType, ConcurrentMap<Object, Object> backingMap) {
     this(keyReferenceType, valueReferenceType, backingMap, true);
} 

我的支持地图是一个能够收集统计数据(点击/未命中等)的并发图。

我可以用什么来代替上面的ReferenceMap构造函数?

谢谢,Grace

1 个答案:

答案 0 :(得分:6)

我们无法继续提供传递您自己的支持地图的功能。 MapMaker使用自己的自定义地图实现。

但是,要收集命中/未命中统计信息,您可以将返回的ConcurrentMap包装在ForwardingConcurrentMap中以计算get调用(使用AtomicLong),并使您的函数计数以类似的方式丢失。 (命中当然,几乎等于请求减去未命中。)