guava.version:21.0
MapMaker.makeMap
public <K, V> ConcurrentMap<K, V> makeMap() {
if (!useCustomMap) {
return new ConcurrentHashMap<K, V>(getInitialCapacity(), 0.75f, getConcurrencyLevel());
}
return MapMakerInternalMap.create(this);
}
1. 构建 ConcurrentHashMap
new MapMaker().concurrencyLevel(8).makeMap();
2. 可以设置keys或者Values是WeakReference的,自己的Map实现。
建议用new MapMaker().weakKeys().makeMap()
代替java.util.WeakHashMap
。Weak的Value或者key用==
比较。WeakHashMap
用equals.
new MapMaker().weakKeys().makeMap()